作者:dasda | 来源:互联网 | 2022-12-03 17:17
我正在尝试这样做:
with
function add_fnc(p_id number) return number
is
begin
return p_id + 1;
end;
insert into temp_table
(
select add_fnc(1) from dual
);
但它显示编译错误:
ORA-00928:缺少SELECT关键字
有没有办法使用带有insert语句的CTE函数?
1> William Robe..:
试试这个:
create table demo (col1 int);
insert /*+ with_plsql */ into demo (col1)
with
function add_one(p_id number) return number
as
begin
return p_id + 1;
end;
select add_one(rownum)
from dual
/
https://oracle-base.com/articles/12c/with-clause-enhancements-12cr1
某些工具可能无法处理此语法.它在SQL*Plus 12.1中起作用(当由斜杠字符终止时,对于PL/SQL代码)但在PL/SQL Developer 12.0.7(Oracle 12.1)中失败.