PL / SQL替换语句

时间:2014-05-20 07:28:47

标签: plsql plsqldeveloper

SQL_STMT := 'UPDATE KTK SET New_Phone_Number = REPLACE(Phone_Number, '.','-')'; 

它有编译错误 PLS-00103: Encountered the symbol "." when expecting one of the following: * & = - + ; < / > at in是mod的余数而不是rem&lt;&gt;或!=或〜=&gt; =&lt; =&lt;&gt;和/或喜欢像||之间的喜欢4喜欢multiset member submultiset符号“*之前插入”。“继续。

我错过了什么?

UPDATE KTK 
SET New_Phone_Number = REPLACE(Phone_Number, '.','-')  

在SQL开发人员中运行良好。

2 个答案:

答案 0 :(得分:0)

你必须在oracle的动态sql中双重转义字符串。如果不是,sql字符串看起来就像它在第一个单引号处结束。

尝试类似:

'UPDATE KTK SET New_Phone_Number = REPLACE(Phone_Number, ''.'',''-'')';

答案 1 :(得分:0)

作为转发引号的替代方法,正如Logard所建议的那样,我非常喜欢Oracle 10g中添加的引用文字。

您的陈述的格式为:

SQL_STMT := q'{UPDATE KTK SET New_Phone_Number = REPLACE(Phone_Number, '.','-')}';

此文字文字格式记录在Oracle documentation