使用sqloader插入序列

时间:2017-07-13 08:54:42

标签: oracle sequence

我对sqloader有一个奇怪的问题。在我的数据库中,我创建了一个这样的序列:

CREATE SEQUENCE TEST_ID_SEQ
  MINVALUE 1
  START WITH 1
  INCREMENT BY 1
  CACHE 20;

我的控制文件看起来像这样:

load data
INFILE 'C:\Users\\test.csv'
into table TABLE_NAME
append
fields terminated by ','
OPTIONALLY ENCLOSED BY '"' AND '"'
trailing nullcols
           (
             TEST_COLUMN_ID "TEST_ID_SEQ.NEXTVAL",
             INSERT_DATE EXPRESSION "current_timestamp(3)",
             COLUMN_1 CHAR(4000),   
             COLUMN_2 CHAR(4000),   
              ......
           )

因此,在导入过程中,我只想在列中插入生成的数字" TEST_COLUMN_ID"。

现在的问题是,如果我在控制文件中写下这一行:

                 TEST_COLUMN_ID "TEST_ID_SEQ.NEXTVAL",

然后,wother值将无法正确导入。这意味着,所有值都将向右移动。例如,COLUMN_1中的值的内容将在COLUMN_2中导入,依此类推。当我删除该行时,它的工作正常.....有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

好的解决方法是将SEQ_NUMBER字段作为控件中的最后一个字段 文件。如果有人感兴趣,可以查看此链接以获取更多详细信息:http://www.mathcs.emory.edu/~cheung/Courses/377/Oracle/SQL-loader/FAQ.html