将一个表日期存档在另一个表中,并在Oracle中存档日期

时间:2013-10-26 14:35:58

标签: sql oracle

我有一个表测试它有10列,有20行。

我需要将这些数据移动到archive_test表,该表有11列(10个与测试表相同,另外一列是存档日期)。

当我试图插入如下所示的显示错误,因为列数不匹配。

insert into archive_test
 select * from test;

请建议更好的方法来做到这一点。谢谢!

2 个答案:

答案 0 :(得分:2)

嗯,很明显,您需要为所有列提供值,尽管您可以避免这样做,但您还应该明确说明要将哪个值插入到哪一列中。如果您在目标表中有一个额外的列,则可以:

  1. 别提它
  2. 在表
  3. 中指定默认值作为其列定义的一部分
  4. 触发填充
  5. 指定该列的值。
  6. 例如

    insert into table archive_test (col1, col2, col3 ... col11)
    select col1,
           col2,
           col3,
           ...
           sysdate
    from test;
    

答案 1 :(得分:1)

假设archive_date最后列:

INSERT INTO archive_test
SELECT test.*, sysdate
FROM   test