DB2和Oracle的translate的不同之处

本文探讨了DB2和Oracle数据库中Translate函数的行为差异。在Oracle中, Translate函数使用空字符串作为替换字符时返回NULL或空格, 而在DB2中则返回空字符串或多个空格。此外, 文章还介绍了Trim函数在两种数据库中的相似用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天做规则校验的时候
碰到了这个问题这是DB2和ORACLE的translate的不同之处;
下面是ORACLE的运行结果
1 select TRIM(TRANSLATE(‘1234’,’123456789’,’ ‘) )from dual ;
2 select TRANSLATE(‘12334’,’123456789’,’ ‘) from dual;
1的结果是null ORACLE不支持空字符串 所有空字符串经过处理后都是null
2的结果为一个空格 原因很简单只替换了第一个1位空格 超出的部分23456789默认改为空。
下面是DB2的运行结果

1 select TRIM(TRANSLATE(‘1234’,’ ‘,’123456789’) )from SYSIBM.SYSDUMMY1 ;

2 select TRANSLATE(‘1234’,’ ‘,’123456789’) from SYSIBM.SYSDUMMY1 ;
db2的translate方式两个参数正好反过来的!!!
1的结果是空 是空字符串 不是null! DB2支持空字符串”
2的结果是四个空格 他的translate方法与oracle不同 所有对应的1234都转换为空格!!!
TRIM函数作用是一样的 都是去除了字符串前后所有的空格!!
是所有两边的空格!!
附加一条刚刚发现的!!
***DB2中”=’ ‘=’ ‘多少个空格都一样
ORACLE中”!=’ ’
’ ‘=’ ‘多少个空格都一样
不信可以测 select * from 表 where ’ ‘=”* !!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值