这是我的情况:
我有一个执行更新表的过程,如下所示:
PROCEDURE UPDATE_MODEL AS
STR VARCHAR2(10000);
BEGIN
STR:='UPDATE SAE_MODEL_TABLE.....'
EXECUTE IMMEDIATE STR;
我需要执行一个调用此UPDATE SAE_MODEL_TABLE
...
我尝试使用此代码
FUNCTION GET_MODEL_TABLE RETURN CLOB AS
STR4 VARCHAR2(50);
count_table number;
BEGIN
str4:='select count(1) from SAE_MODEL_TABLE;
execute immediate str4 into count_table;
IF count_table <> 0 then
UPDATE_MODEL ;
我遇到此错误:
ORA-14551:不能在查询中执行DML操作
我知道这是指添加更新...
答案 0 :(得分:0)
我不知道为什么要使用动态SQL,但是如果您真的想这样做,它可能看起来像这样
PROCEDURE UPDATE_MODEL AS
STR VARCHAR2(10000);
BEGIN
STR:='UPDATE SAE_MODEL_TABLE.....'
EXECUTE IMMEDIATE STR;
end;
FUNCTION GET_MODEL_TABLE RETURN CLOB AS
STR4 VARCHAR2(50);
count_table number;
my_clob clob;
BEGIN
str4:='select count(1) from SAE_MODEL_TABLE';
execute immediate str4 into count_table;
IF count_table <> 0 then
UPDATE_MODEL() ;
end if;
return my_clob;
end;