去掉 李 三 四 ,中的两个空格,可以向下面这样写:
select translate('李 三 四 ', '/'||chr(32), '/') from dual;
解析:
ASCII码中空格的十进制表示是32,chr(十进制)能转换成字符,因此可以得到chr(32)代表空格,再拼接上'/'即可得到'/'||chr(32)转义后的空格
再根据语法:TRANSLATE(char, from, to),from 和 to中的元素一一对应,上面例子中from为转译字符空格'/'||chr(32),相应to也要有转译字符元素与之对应,所以'/'是修饰元素的转义字符
若根据!是33可以得到select translate('李 三 四 ', '/'||chr(32), '/'||chr(33)) from dual;的结果为:李!三!四!