2010-06-15 23 views

回答

1

我不這麼認爲,但您可以通過插入觸發器分配序列,除非這是直接路徑加載。

+0

謝謝@ REW。我沒有使用直接路徑加載。 – Sujee 2010-06-27 03:44:55

2

我已經成功地使用了序列從我Oracle 10g databasesqlldr運行期間來填充主鍵字段:

這裏是我的data.ctl:

LOAD DATA 
INFILE 'data.csv' 
APPEND INTO TABLE my_data 
FIELDS TERMINATED BY ',' 
(
    ID "MY_SEQUENCE.NEXTVAL", 
    name char 
) 

和我的data.csv:

-1, "dave" 
-1, "carol" 
-1, "tim" 
-1, "sue" 

由於某些原因,您必須在CSV文件中輸入虛擬值,即使您認爲sqlldr只會顯示o你想用一個序列。

1

我設法在不使用虛擬通過開關的順序是最後一列中加載:

LOAD DATA 
INFILE 'data.csv' 
APPEND INTO TABLE my_data 
FIELDS TERMINATED BY ',' 
(
    name char, 
    ID "MY_SEQUENCE.NEXTVAL" 
) 

和data.csv會是這樣:

"dave" 
"carol" 
"tim" 
"sue" 
+0

您必須將'TRAILING NULLCOLS'添加到控制文件中。 – broeni 2017-12-22 07:26:09