无法在Oracle中修剪字符串

idv4meu8  于 2022-10-04  发布在  Oracle
关注(0)|答案(5)|浏览(208)

我有一个字符串IN-123456;现在我需要从该字符串中删除IN-。我试过了,就像先知

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.

我怎么才能解决这个问题?

xn1cxnb4

xn1cxnb41#

简单的更换不会起到作用?

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

ymzxtsji2#

谢谢你的结果..。

可以用LTRIM()函数求解

yhuiod9q

yhuiod9q3#

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

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

请注意,这将替换字符串中任何位置出现的所有IN-。如果这不合适,但IN-将始终位于字符串的开头,则可以改用SUBSTR

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

k3bvogb14#

你只是忘了完成单引号

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

现在试试这个

frebpwbc

frebpwbc5#

Trim函数总是从字符串中删除一个字符

以下是示例-从DUAL中选择Trim(都是‘PHELLO WORLDP’中的‘P’)

输出-你好,世界

您可以使用两者的前导/尾随插入。在你的案例中,“IN-”代表三个字符。

相关问题