2014-05-20 102 views
-1
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 <>或者= =或= => = < = <>和或者像like2 like4 likec between ||多集成员SUBMULTISET符号 “*在之前插入”。”继续。PL/SQL REPLACE STATEMENT

我错过什么?

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

在SQL开发人员合作良好。

回答

0

你有在oracle中的动态sql中加倍转义字符串如果不是,sql字符串看起来像在第一个单引号中结束

尝试类似:

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

记录,我认为你有太多的行情出现。每个点只需要两个,而不是三个。 –

+0

是的,这就对了!现在编辑,谢谢 – Logard

0

作为Logard提出的转义引号的替代方案,我非常喜欢在Oracle 10g中添加的引号字面值。

的发言的格式是:

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

本文文字格式在Oracle documentation

+0

谢谢,它是完美的。 – user3655434