sql - 将旧表中的数据合并到新表中以进行每月存档

标签 sql oracle oracle11g

我有一个 sql 语句将数据插入到表中以进行存档,但我需要一个合并语句以按月运行,以使用旧表 (1) 中更改的任何数据更新新表 (2),现在应该是移入存档。

部分问题是从旧表中删除移动的数据。我的插入并没有这样做,但我需要将它放到从原始表中清除保存数据的位置。

是否有一条 sql 语句可以以这种方式将数据从一个表移到另一个表中?还是需要两步操作?

最初的声明根据年龄和其他一些相关因素移动数据。
插入是:

INSERT /*+ append */ 
  INTO tab1
SELECT *
  FROM tab2
 WHERE (Postingdate < TO_DATE ('2001/07/01', 'yyyy/mm/dd')
       OR jobname IS NULL)
   AND STATUS <> '45';

所有帮助表示赞赏...

最佳答案

merge通过在更新子句中添加删除语句,语句将让您在一个语句中完成此操作。见 Oracle Documentation on Merge .

关于sql - 将旧表中的数据合并到新表中以进行每月存档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8663451/

相关文章:

sql - 如何按升序选择表格的最后三行?

oracle - Kubernetes 负载均衡器 Oracle Cloud NGINX 入口 Controller 问题

sql - 将listagg函数限制为前4000个字符

mysql - 有人可以帮我理解如何在 dbms 中编写触发器吗?

sql - 优化并重新编译 Oracle 中的提示?

python - 如何使用 python db-api 安全地生成 SQL LIKE 语句

mysql - MySQL 24小时间隔语句问题

MYSQL - 从表 1 中进行计数和分组并从表 2 中获取信息

oracle - 如何验证空值 - oracle etl 测试?

sql - Oracle 分析 SUM SQL 不会在窗口中一次求和一个