oracle中去掉姓名中的空格

select translate('李 三 四 ', '/'||chr(32), '/') from dual;
为什么要这样,'/'有什么用吗?

select replace('李 三 四',' ','') 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;的结果为:李!三!四!

使用oracle TRIM函数就可以了