【发布时间】:2020-07-22 17:55:29
【问题描述】:
这是一个更大的 Java 程序的一部分,但我正在寻找一种在 Oracle SQL 中将记录从一个表复制到另一个表的方法。原始表为 45 列。第二个表是原表的存档表。
编辑 - 它有相同的 45 列,但也有一个 NewKey 列 - 在存档表中创建使用
("NEWKEY" NUMBER GENERATED ALWAYS as IDENTITY(START with 1 INCREMENT by 1)
还有一个 archive_date 列
"ARCHIVEDATE" DATE DEFAULT CURRENT_TIMESTAMP
有没有办法做一个查询
INSERT INTO Archive_Table A
SELECT * (plus NEWKEY, ARCHIVEDATE) FROM Original Table O
WHERE O.CUSTKEY = passed_param;
传递的唯一参数是 CUSTKEY?一旦从原始表中复制了一条记录,它将从原始表中删除。
【问题讨论】:
-
您自己的测试结果如何?您需要列出各个列,并更改您的 WHERE 子句。不需要加入 (WHERE A.CUSTKEY = O.CUSTKEYI),只需 'where o.custkey = pass_parm.并且您需要添加一个条件来防止获取您在之前运行中获得的行。
-
让我稍微编辑一下,看看是否更有意义。