我在以下查询中收到此错误。查询是修改约束
SELECT 'EXEC DROP_CONSTRAINTS('RTK_TYUVOICE_SYSTEM','IOA_WRTYOICE');' FROM DUAL
*
第1行的错误:
ORA-00923: FROM keyword not found where expected
当我从sql / nolog
执行上述查询时,请告知如何克服这个问题答案 0 :(得分:0)
字符串中的双引号
SELECT 'EXEC DROP_CONSTRAINTS(''RTK_TYUVOICE_SYSTEM'',''IOA_WRTYOICE'');' as txt FROM DUAL;
TXT
------------------------------------------------------------
EXEC DROP_CONSTRAINTS('RTK_TYUVOICE_SYSTEM','IOA_WRTYOICE');
或使用(来自10g)quoted string
SELECT q'[EXEC DROP_CONSTRAINTS('RTK_TYUVOICE_SYSTEM','IOA_WRTYOICE');]' as txt FROM DUAL;
TXT
------------------------------------------------------------
EXEC DROP_CONSTRAINTS('RTK_TYUVOICE_SYSTEM','IOA_WRTYOICE');
答案 1 :(得分:0)
您正尝试使用我希望的语句修改约束,并且不打算只打印您的语句。
在这种情况下,您需要使用Execute Immediate语句,这有助于在过程中动态执行DDL语句。
BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE ANAL2 DROP CONSTRAINT SYS_C008611' ;
END;
/
任何有效的DDL语句(如create,alter,drop等)都可以在EXECUTE IMMEDIATE语句中使用正确的语法形式进行压缩。
或者,您可以提一下,如果给定的SQL是静态的,则为
ALTER TABLE ANAL2 DROP CONSTRAINT SYS_C008611