在DB2中导入命令

时间:2011-08-16 11:18:16

标签: import db2

在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'

可能出现什么问题?

2 个答案:

答案 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 以获取更多说明。