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 ’ ‘=”* !!!!

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