2016-01-22 32 views
0

你好,我不明白虛擬填充它做什麼?它是什麼做假填充sql加載程序?

有人向我解釋?

load data 
    infile * "str '</contact>'" 
INSERT 



into table address_book 
TRUNCATE 
    FIELDS(
     dummy1 filler char(2000) terminated by "<contact>", 
     contact_name char(2000) enclosed by "<contact_name>" and "</contact_name>", 
     address char(2000) enclosed by "<address>" and "</address>", 
     dummy2 filler char(2000) terminated by "</start>" 
     ) 
BEGINDATA 

例如:dummy1填充:這意味着要忽略一切,直到聯繫? 謝謝

回答

0

基本上在高級別Sqlldr首先匹配控制文件中定義的字段與數據文件中的字段。然後,如果它也匹配列名稱,它會嘗試將其插入到表中。

注意,INFILE線的str部分:

infile * "str '</contact>'" 

告訴SQLLDR一個記錄以字符串"</contact>"結束。

所以我們可以看出sqlldr是從聯繫人記錄中加載一些數據。在這種情況下,記錄中的數據將被讀取,直到找到字符串"<contact>",並且由於它與列名稱不匹配,並且進一步將其定義爲FILLER,它將被sqlldr忽略。它只對contact_name和address字段感興趣。

所以要回答你的問題,是的。 :-)

+0

Gary_W謝謝。你的答案非常全面 – Dany