我写了一个存储过程:
CREATE OR REPLACE PROCEDURE test1
AS
strSchema VARCHAR2(20);
BEGIN
EXECUTE IMMEDIATE
'ALTER TABLE TABLE_A DISABLE CONSTRAINT TABLEA_CONTRAINT ';
'ALTER TABLE TABLE_A DISABLE CONSTRAINT TABLEB_CONTRAINT ';
'ALTER TABLE TABLE_C DISABLE CONSTRAINT TABLEC_CONTRAINT ';
COMMIT;
END test1;
但是我在编译期间遇到以下错误,不知道为什么 .
PLS-00103:当遇到以下情况之一时遇到符号“ALTER TABLE”:(如果循环mod为空pragma引发返回选择更新,则使用<< begin close current delete delete lock insert open rollback) savepoint set sql execute commit forall merge pipe purge符号“(”代替“ALTER TABLE”继续 .
2 回答
这应该工作 . 实际上没有必要
COMMIT
.ALTER TABLE
是一个不需要提交的DDL语句 .一个命令在一个EXECUTE IMMEDIATE中