Oracle SQL中的函数是否有不同版本的TRIM函数?

时间:2014-04-01 19:21:09

标签: sql oracle

这是我的sql:

V_FORMAT_VAL     := REPLACE( TRIM(IN_CATS_XY) , ' '  , '' );

但这是一个不同的format , than what is shown here

TRIM( [ LEADING | TRAILING | BOTH [ trim_character ] string1 )

我不理解上面的代码。如果TRIM已经处理空间,那么进行REPLACE的重点是什么?

4 个答案:

答案 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 ;  

并看到差异。