在DB2中,我有一个表:
CREATE TABLE test ( test_id INTEGER NULL, test_name VARCHAR(255) NOT NULL, test_test VARCHAR(255))
现在我想将数据导入此表并使用命令
IMPORT from '/home/test.txt' of del MODIFIED BY LOBSINFILE INSERT INTO test
如果test.txt
文件包含以下内容,则可以正常工作。
\N, "aaaaaaa", "aaaaaaa"
\N, "bbbbbbb", "bbbbbbb"
但如果文本文件包含以下数据,则会插入多个记录。
\N, "<section>\
<id root=\"84f194ae-f573-4249-8368-e38c74891965\"/>\
<code code=\"34071-1\" codeSystem=\"2.16.840.1.113883.6.1\" displayName=\"WARNINGS SECTION\"/>\
<title>Warnings</title>\
<text>\
<paragraph>For external use only, do not use in the eye area.<br/>\
</paragraph>\
</text>\
<effectiveTime value=\"20100225\"/>\
</section>","aaaaaaa"
\N, 'bbbbbbb', 'bbbbbb'
可能出现什么问题?
答案 0 :(得分:1)
尝试使用另一个引号来转义数据中的引号:
\N, "<section>\
<id root=""84f194ae-f573-4249-8368-e38c74891965""/>\
<code code=""34071-1"" codeSystem=""2.16.840.1.113883.6.1"" displayName=""WARNINGS SECTION""/>\
<title>Warnings</title>\
<text>\
<paragraph>For external use only, do not use in the eye area.<br/>\
</paragraph>\
</text>\
<effectiveTime value=""20100225""/>\
</section>","aaaaaaa"
然后使用此导入语法:
IMPORT from '/home/test.txt' of del MODIFIED BY DELPRIORITYCHAR XMLPARSE PRESERVE WHITESPACE INSERT INTO test
此外,varchar(255)对于您的示例来说还不够大。
答案 1 :(得分:0)
从DB2参考指南:“注意:XML数据不能直接存储在分隔文件的基表行中。它必须放在单独的文件中并使用XDS引用。”
您不能像那样导入XML数据(或任何暗示新行的内容 - 这也适用于LOBs)。相反,您需要在列中指定的是XML文件名,导入文件类型将是DEL XML
而不是DEL
。
检查 Exporting XML data 以获取更多说明。