任务:复制表中的一行并返回id一个新行。因为 表格有很多列,我想这样做没有不必要的手势。
这是我试图做的,但它不起作用:
DECLARE
new_id NUMBER;
old_id NUMBER;
BEGIN
old_id:=2584;
INSERT INTO table_name_44 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table_name_44
WHERE old_id:=2584
RETURNING column_id INTO new_id;
END;
错误报告 -
ORA-06550:第 10 行,第 1 列:
PL/SQL:ORA-00933:SQL 命令未正确结束
id设计后如何退货INSERT .... SELECT?也许还有其他方法?
在 PL/SQL 或 SQL 上是可能的。
那是行不通的。
RETURNING不支持插入INSERT...SELECT。看语法图single_table_insert::= ,有子查询的分支中没有返回子句。
做这个:
结果: