oracle - SQL Loader 中的 Insert 和 Append 语句之间的区别?

标签 oracle sql-loader

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

最佳答案

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

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

关于oracle - SQL Loader 中的 Insert 和 Append 语句之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4812908/

相关文章:

java - 对两个非空字段添加唯一约束

sql - 我想将一个表中的行分配到另一个表中的行,这些行可以在 SQL oracle 中占用相同数量的行

在 shell 脚本中使用 SQL*Loader 时找不到 sqlldr

sql - 从 SQL*Loader 控制文件中访问数据文件名

sql - 可以嵌套数据库 View 吗?

sql - Oracle SQL数据透视查询

sql - 看似简单的 SQL 查询结果非常复杂 (Oracle)

加载带有 Windows 行结尾的 CSV 文件时,Oracle Sql Loader "ORA-01722: invalid number"

oracle - SQL*Loader 中的 if-else 情况

java.io.IOException : Cannot run program "sqlldr": CreateProcess error=2, 系统找不到指定的文件