ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB TRANSLATE函数

YashanDB TRANSLATE函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-08-08 09:52:11 0 删除 编辑

TRANSLATE函数将 expr表示的字符串里的所有的from_string中的每一个字符替换为相应的to_string中的字符,是多个单字符的一对一替换关系,返回一个VARCHAR类型的新字符串。

在TRANSLATE...USING用法中,TRANSLATE函数将依据CHAR_CS/NCHAR_CS,对expr表示的字符串进行字符集转换。

本函数遵循如下规则:

  • 本函数不支持向量化计算。

  • 当using CHAR_CS时返回值为VARCHAR类型。

  • 当using NCHAR_CS时返回值为NVARCHAR类型。

  • 当不带using时,expr为NCLOB/NCHAR/NVARCHAR时,返回值为NVARCHAR类型,其余场景返回值为VARCHAR类型。

expr

  • expr的值须为字符型,或可转换为字符型的其他类型。当expr的值为NULL时,函数返回NULL。

  • expr不支持32000字节以上的XMLTYPE、LOB类型数据。

from_string

  • 要进行替换的字符串,须为字符型,或可转换为字符型的其他类型(LOB、XMLTYPE类型支持隐式转换)。

  • from_string为与expr相同的通用表达式,当from_string的值为NULL时,函数返回NULL。

to_string

  • 按此字符串的值进行一对一替换,须为字符型,或可转换为字符型的其他类型(LOB、XMLTYPE类型支持隐式转换)。

  • to_string为与expr相同的通用表达式,当to_string的值为NULL时,函数返回NULL。

示例(HEAP表)

SELECT TRANSLATE('I am chinese', 'ch', 'ab') TRANSLATEFROM DUAL;TRANSLATE-------------I am abineseSELECT TRANSLATE('I am chinese', 'china', 'ab') TRANSLATEFROM DUAL;TRANSLATE-------------I m abeseSELECT TRANSLATE('我是中国人,我爱中国,China', '中国', 'China') TRANSLATEFROM DUAL;TRANSLATE-----------------------------我是Ch人,我爱Ch,China
Copied!

translate_using

  • CHAR_CS表示将expr转换成用数据库字符集编码的字符串,此时函数返回值的类型是VARCHAR。

  • NCHAR_CS表示将expr转换成用国家字符集编码的字符串,此时函数返回值的类型是NVARCHAR。

示例(HEAP表)

SELECT TRANSLATE('Yashan Database' USING CHAR_CS) TRANSLATEFROM DUAL;TRANSLATE-----------------Yashan DatabaseSELECT TRANSLATE('崖山数据库' USING NCHAR_CS) TRANSLATEFROM DUAL;TRANSLATE----------------------------------------------------------------崖山数据库
Copied!
代码
translate::= TRANSLATE "(" expr ((USING (CHAR_CS|NCHAR_CS))|("," from_string "," to_string)) ")"

TRANSLATE函数将 expr表示的字符串里的所有的from_string中的每一个字符替换为相应的to_string中的字符,是多个单字符的一对一替换关系,返回一个VARCHAR类型的新字符串。

在TRANSLATE...USING用法中,TRANSLATE函数将依据CHAR_CS/NCHAR_CS,对expr表示的字符串进行字符集转换。

本函数遵循如下规则:

  • 本函数不支持向量化计算。

  • 当using CHAR_CS时返回值为VARCHAR类型。

  • 当using NCHAR_CS时返回值为NVARCHAR类型。

  • 当不带using时,expr为NCLOB/NCHAR/NVARCHAR时,返回值为NVARCHAR类型,其余场景返回值为VARCHAR类型。

expr

  • expr的值须为字符型,或可转换为字符型的其他类型。当expr的值为NULL时,函数返回NULL。

  • expr不支持32000字节以上的XMLTYPE、LOB类型数据。

from_string

  • 要进行替换的字符串,须为字符型,或可转换为字符型的其他类型(LOB、XMLTYPE类型支持隐式转换)。

  • from_string为与expr相同的通用表达式,当from_string的值为NULL时,函数返回NULL。

to_string

  • 按此字符串的值进行一对一替换,须为字符型,或可转换为字符型的其他类型(LOB、XMLTYPE类型支持隐式转换)。

  • to_string为与expr相同的通用表达式,当to_string的值为NULL时,函数返回NULL。

示例(HEAP表)

SELECT TRANSLATE('I am chinese', 'ch', 'ab') TRANSLATEFROM DUAL;TRANSLATE-------------I am abineseSELECT TRANSLATE('I am chinese', 'china', 'ab') TRANSLATEFROM DUAL;TRANSLATE-------------I m abeseSELECT TRANSLATE('我是中国人,我爱中国,China', '中国', 'China') TRANSLATEFROM DUAL;TRANSLATE-----------------------------我是Ch人,我爱Ch,China
Copied!

translate_using

  • CHAR_CS表示将expr转换成用数据库字符集编码的字符串,此时函数返回值的类型是VARCHAR。

  • NCHAR_CS表示将expr转换成用国家字符集编码的字符串,此时函数返回值的类型是NVARCHAR。

示例(HEAP表)

SELECT TRANSLATE('Yashan Database' USING CHAR_CS) TRANSLATEFROM DUAL;TRANSLATE-----------------Yashan DatabaseSELECT TRANSLATE('崖山数据库' USING NCHAR_CS) TRANSLATEFROM DUAL;TRANSLATE----------------------------------------------------------------崖山数据库


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3093013/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: YashanDB TREAT函数
请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639749