5

谁能告诉我 SQL Loader 中 Insert 和 Append 语句的区别?考虑下面的例子:这是我的控制文件

     load_1.ctl
     load data 
     infile 'load_1.dat' "str '\r\n'" 
     insert*/+append/* into table sql_loader_1 
     ( 
      load_time sysdate, 
      field_2 position( 1:10),
      field_1 position(11:20)
     ) 

这是我的数据文件

     load_1.dat
     0123456789abcdefghij
     **********##########
     foo         bar
     here comes a very long line 
     and the next is 
     short 
4

2 回答 2

10

文档相当清楚;INSERT当您加载到一个空表中,以及APPEND将行添加到(可能)包含数据(您想要保留)的表中时使用。

APPEND如果你的桌子是空的,它仍然可以工作。INSERT如果您希望表为空,可能会更安全,因为如果这不是真的,它会出错,可能会避免意外结果(特别是如果您没有注意到并且没有收到其他错误,例如违反唯一索引约束)和/或加载后数据清理。

于 2011-01-27T08:20:21.923 回答
-4

区别主要有两点:

  • append 只会在语句末尾添加记录
  • insert 将插入您想要的任何位置,即如果您的表有 10 列,您只能在 5 列中插入,但附加时您不能。

追加您的数据和表应该具有相同的列意味着在行级别而不是列级别插入数据

如果你的表有数据,如果它是空的,你也不能使用插入,那么只有你可以使用插入。

希望能帮助到你

于 2013-03-23T12:59:03.663 回答