返回首页

gbase数据、南大通用产品文档:GBase8aTRANSLATE(char,from_string,to_string)

更新日期:2024年09月11日

函数说明
将char 中包含的from_string 字符替换为to_string 中的相应字符,然后返回替换
后的字符串。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
723

to_string 不能省略。

如果from_string 比to_string 长,那么在from_string 中而不在to_string 中的
额外字符将从char 中删除,因为它们没有相应的替换字符。

如果TRANSLATE 中的任何参数为NULL,则结果也是NULL。
示例
示例1:from_string 长度长于to_string,在from_string 中而不在to_string 中的额
外字符将从char 中删除。
gbase> SELECT TRANSLATE('123abc','2dc','4e') FROM dual;
+--------------------------------+
| TRANSLATE('123abc','2dc','4e') |
+--------------------------------+
| 143ab
|
+--------------------------------+
1 row in set
说明
因为from_string 和to_string 的位置是一一对应的,2 对应4,d 对应
e。
c 没有对应的值,所以c 会被删除。字符里的2 会替换为4,d 因为
字符串里没有,不做替换,c 由于没有对应的替换字符,所以字符串里的c 会
被删除。因此输出结果是143ab。
示例2:from_string 长度长于to_string,在from_string 中而不在to_string 中的额
外字符将从char 中删除。
gbase> SELECT TRANSLATE('13579abc','13a','24') FROM dual;
+----------------------------------+
| TRANSLATE('13579abc','13a','24') |
+----------------------------------+
| 24579bc
|
+----------------------------------+
1 row in set
示例3:from_string 为NULL,返回值为NULL。
gbase> SELECT TRANSLATE('23',NULL,'a') FROM dual;
+--------------------------+

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
724
| TRANSLATE('23',NULL,'a') |
+--------------------------+
| NULL
|
+--------------------------+
1 row in set

bigintcvint2() 函数将 int2 类型数值转换为 BIGINT 类型数值。

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 606 -

语法
mint bigintcvint2(int2v, bigintp)
const int2 int2v
bigint *bigintp
int2v
要转换为 bigint 值的 int2 值。
bigintp
指向包含转换的结果的 bigint 变量的指针。

返回代码
0
转换成功。
<0
转换失败。

远程rmt 导出dual 表数据没有落到本地而是落
到了集群节点上
在使用rmt 导出物理表,数据文件落在本地服务器上。使用rmt 导出dual 表时,
数据文件落在-h 连接的集群节点上。
例如gccli -h132.151.55.14 -ubi -pBiChinaU1! -e"rmt:select '1' from dual into outfile
'/home/gbase/zhoutt1.txt'"
数据没有导出到gccli 所在的服务器,而是落到了132.151.55.14 上。
测试版本8.6.2_build23-R8。
解决方法
打开_t_gcluster_use_new_dual 参数,使用新dual 模式,可以正常导出到gccli 所
在服务器。
另外,
使用一般用户导出还需要额外赋予用户dual 表的select 权限,
grant select on
gclusterdb.dual to u01。