【发布时间】:2019-05-21 14:14:29
【问题描述】:
这是我的情况:
我有一个像这样更新表的过程:
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 操作,
我知道那是指添加更新...
【问题讨论】:
-
为什么要用动态sql来统计行数或者更新?一般来说,函数的最佳实践是不使用 DML 集合(插入、更新、删除)。