将xml插入XmlType字段

时间:2013-10-29 16:49:04

标签: sql oracle insert oracle11g xmltype

我在Oracle 11g中有这个表:

create table tmp_test_xml (
    name_xml varchar2(4000),
    file_xml xmltype
);

在此链接oracle binding xmltype,我已经读过,为了正确插入字段XMLType我必须使用“Xmltype绑定”作为此插入:

insert into tmp_test_xml values (
          'file.xml',
          xmltype(
            '<?xml version="1.0" encoding="UTF-8"?>
            <list_book>
                <book>1</book>
                <book>2</book>
                <book>3</book>
            </list_book>'
          )
);

但是,如果我尝试在XMLType没有绑定的情况下午餐这个插页,那就非常好了:

insert into tmp_test_xml values (
          'file.xml',
            '<?xml version="1.0" encoding="UTF-8"?>
            <list_book>
                <book>1</book>
                <book>2</book>
                <book>3</book>
            </list_book>'
);

现在,是否使用绑定装置?什么是正确的插入?

为什么第二个插件有效?

1 个答案:

答案 0 :(得分:1)

Oracle尝试为您完成工作,因此如果您的数据类型与列数据类型不匹配,它会尝试将数据转换为正确的数据类型。

由于insert语句中有正确的xml字符串,因此数据库确实为您转换为xmltype。

我不确定,但我怀疑是否有一个词必须使用XMLType绑定。
但是,如果在从字符串创建XML时需要更多控制,则可能需要使用它 检查XMLType constructors以获得想法。