create or replace procedure Pro_Match1(vxh in varchar2, vcert_id in varchar2)
as
begin
ALTER TABLE libsys.cert_loss DISABLE CONSTRAINT fk_cert_los_rel_42744_reader_c;
。
。
。
end
提示出错:
Error: PLS-00103: 出现符号 "ALTER"在需要下列之一时:
begin case declare exit
for goto if loop mod null pragma raise return select update
while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe
符号 "lock在 "ALTER" 继续之前已插入。
Line: 21Error: PLS-00103: 出现符号 "CONSTRAINT"在需要下列之一时:
, in
Line: 21
as
begin
ALTER TABLE libsys.cert_loss DISABLE CONSTRAINT fk_cert_los_rel_42744_reader_c;
。
。
。
end
提示出错:
Error: PLS-00103: 出现符号 "ALTER"在需要下列之一时:
begin case declare exit
for goto if loop mod null pragma raise return select update
while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe
符号 "lock在 "ALTER" 继续之前已插入。
Line: 21Error: PLS-00103: 出现符号 "CONSTRAINT"在需要下列之一时:
, in
Line: 21
create or replace procedure Pro_Match1(vxh in varchar2, vcert_id in varchar2)
as
begin
EXECUTE IMMEDIATE 'ALTER TABLE libsys.cert_loss DISABLE CONSTRAINT fk_cert_los_rel_42744_reader_c';
。
。
。
end
EXECUTE IMMEDIATE 'ALTER TABLE libsys.cert_loss enable CONSTRAINT fk_cert_los_rel_42744_reader_c';
即可
所以要执行就必须使用动态SQL语句。
例:
create or replace procedure Pro_Match1(vxh in varchar2, vcert_id in varchar2)
as
begin
ALTER TABLE libsys.cert_loss DISABLE CONSTRAINT fk_cert_los_rel_42744_reader_c;
。
。
。
end