我在Oracle SQL开发人员表中有一个字段,我需要删除特定字段中的所有标点符号。表名为"标点测试"我尝试的函数不起作用,我得到了@InputString的错误这是我尝试过的功能:任何想法和建议都会有所帮助,谢谢
CREATE FUNCTION dbo.fn_RemovePunctuation
(
@InputString VARCHAR(500)
)
RETURNS VARCHAR(500)
AS
BEGIN
SELECT
@InputString = REPLACE(@InputString, P.Symbol, '')
FROM
Punctuationtest P
RETURN @InputString
END
GO
Oracle SQL Developer"是一个工具,用于建立与数据库的连接并执行操作。是哪个数据库?通常是Oracle. 但是,话又说回来,你发布的代码肯定不是Oracle -因此你得到了错误(至少,我认为是这样)。
如果您的数据库确实是Oracle,那么您可以尝试使用这样的正则表达式(参见第6行):
SQL> with test (col) as
2 (select 'abc,!23' from dual union all
3 select '?xyz,.' from dual
4 )
5 select col,
6 regexp_replace(col, '[[:punct:]]') result
7 from test;
COL RESULT
------- ----------------------------
abc,!23 abc23
?xyz,. xyz
SQL>
或者,当您想要更新表时,您可以
update your_table set
that_column = regexp_replace(that_column, '[[:punct:]]');