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开发人员中运行良好。
答案 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
中