无法修剪Oracle中的字符串

时间:2016-01-30 04:54:19

标签: oracle

我有一个字符串IN-123456;现在我需要修剪该字符串中的IN-。我在Oracle中尝试过

select trim('IN-' from 'IN-123456) from dual;

但是我收到了错误

ORA-30001: trim set should have only one character
30001. 00000 -  "trim set should have only one character"
*Cause:    Trim set contains more or less than 1 character. This is not
           allowed in TRIM function.

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

简单的替换不会起作用吗?

select replace('IN-123456', 'IN-', '') from dual;

答案 1 :(得分:1)

感谢结果......

可以使用LTRIM()函数

来解决

答案 2 :(得分:0)

显然,TRIM不是这项工作的正确功能。您需要REPLACE(子)字符串IN-,不需要任何内容​​:

SELECT REPLACE('IN-123456', 'IN-') FROM dual;

请注意,这将替换字符串中任何位置的所有IN-。如果这不合适,但IN-始终位于字符串的开头,那么您可以使用SUBSTR代替:

SELECT SUBSTR('IN-123456', 4) FROM dual;

答案 3 :(得分:0)

你忘记完成单引号

select trim('IN-' from 'IN-123456') from dual;

现在试试这个