这是我的sql:
V_FORMAT_VAL := REPLACE( TRIM(IN_CATS_XY) , ' ' , '' );
但这是一个不同的format , than what is shown here:
TRIM( [ LEADING | TRAILING | BOTH [ trim_character ] string1 )
我不理解上面的代码。如果TRIM已经处理空间,那么进行REPLACE的重点是什么?
答案 0 :(得分:4)
TRIM仅处理字符串开头和结尾的空格。事实上,TRIM没有意义,因为REPLACE将替换整个字符串中的所有空格,最有效的方式是:
V_FORMAT_VAL := REPLACE(IN_CATS_XY, ' ');
如果没有提供替换字符串,则默认情况下,如果替换将删除字符串。
答案 1 :(得分:1)
TRIM从开头和结尾删除空格,然后REPLACE删除字符串中的所有剩余空格。
答案 2 :(得分:1)
Trim处理字符串开头和结尾的空格,或两者兼而有之。替换是为了摆脱字符串内部出现的任何空格。
基本上,它需要一个字符串,如:
one two three
并将其转换为
onetwothree
同时也消除了起始和结束间距。
答案 3 :(得分:1)
trim()消除了字符串开头和结尾的空格。 replace()删除所有空格。
实际上我认为trim()在这个片段中没用。
试试这个:
select '>'||trim(' a nice string ')||'<' from dual ;
和这个
select '>'||replace(' a nice string ', ' ')||'<' from dual ;
并看到差异。