【问题标题】:Difference Between Insert and Append statement in SQL Loader?SQL Loader 中的 Insert 和 Append 语句的区别?
【发布时间】:2013-03-23 20:59:03
【问题描述】:

谁能告诉我 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 

【问题讨论】:

    标签: oracle sql-loader


    【解决方案1】:

    documentation 相当清晰;在加载到空表时使用INSERT,在向(可能)包含数据(您想要保留的数据)的表中添加行时使用APPEND

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

    【讨论】:

    • insert 也将行添加到表中,append 也做同样的事情......主要区别是什么?你能解释清楚吗?即使我浏览了文档,我也无法理解
    • @Rajesh: INSERT在表为空时添加行;如果表不为空,则会出错。 APPEND 无论表是否为空都会添加行。
    【解决方案2】:

    区别在两点很明显:

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

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

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2017-01-30
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 2023-04-08
      • 2021-09-30
      • 2014-12-07
      • 2011-06-11
      相关资源
      最近更新 更多