DB2和Oracle的translate的不同之处

今天做规则校验的时候
碰到了这个问题这是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 ’ ‘=”* !!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章