在预言机查询中获取"FROM"错误



我在下面的查询中收到此错误。查询是修改约束

SELECT 'EXEC DROP_CONSTRAINTS('RTK_TYUVOICE_SYSTEM','IOA_WRTYOICE');' FROM DUAL
                                                   *

第 1 行错误:

ORA-00923: FROM keyword not found where expected

当我从sql/nolog执行上述查询时,请告知如何克服此问题

字符串中的双引号

SELECT 'EXEC DROP_CONSTRAINTS(''RTK_TYUVOICE_SYSTEM'',''IOA_WRTYOICE'');' as txt FROM DUAL;
TXT                                                        
------------------------------------------------------------
EXEC DROP_CONSTRAINTS('RTK_TYUVOICE_SYSTEM','IOA_WRTYOICE'); 

或使用(从 10g)带引号的字符串

SELECT q'[EXEC DROP_CONSTRAINTS('RTK_TYUVOICE_SYSTEM','IOA_WRTYOICE');]' as txt FROM DUAL;
TXT                                                        
------------------------------------------------------------
EXEC DROP_CONSTRAINTS('RTK_TYUVOICE_SYSTEM','IOA_WRTYOICE');

您正在尝试使用我希望的语句修改约束,而不是只想打印您的语句。

在这种情况下,您需要使用立即执行语句,该语句有助于在过程中动态执行 DDL 语句。

BEGIN
EXECUTE IMMEDIATE 'ALTER TABLE ANAL2 DROP CONSTRAINT SYS_C008611' ;
END;
/

任何有效的 DDL 语句(如创建、更改、删除等)都可以在 EXECUTE IMMEDIATE 语句中使用正确的语法结构进行压缩。

或者,如果给定的SQL是静态的,您可以提及

ALTER TABLE ANAL2 DROP CONSTRAINT SYS_C008611

相关内容

  • 没有找到相关文章

最新更新