你好,我不明白假填料是做什么的?
有人向我解释了吗?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 :(得分:0)
基本上,在高级Sqlldr
,首先将控制文件中定义的字段与数据文件中的字段匹配。然后,如果它也匹配列名,它会尝试将其插入表中。
请注意,infile行的str
部分:
infile * "str '</contact>'"
告诉sqlldr记录以字符串"</contact>"
结尾。
因此我们可以看出sqlldr
是从联系人记录中加载一些数据。在这种情况下,记录中的数据将被读取,直到找到字符串"<contact>"
,并且因为它与列名称不匹配,并且进一步将其定义为FILLER,sqlldr将忽略它。它只对contact_name和address字段感兴趣。
所以回答你的问题,是的。 : - )