我在Oracle 11g中有这个表:
create table tmp_test_xml (
name_xml varchar2(4000),
file_xml xmltype
);在这个链接oracle binding xmltype中,我已经读到为了正确插入到字段XMLType中,我必须使用"Xmltype binding“作为这个插入:
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>'
);现在,因子使用是否具有约束力?正确的插入是什么?
为什么第二个插入行得通?
发布于 2013-10-30 07:14:38
Oracle会尝试为您做这项工作,因此如果您的数据类型与列数据类型不匹配,它会尝试将数据转换为正确的数据类型。
由于insert语句中包含了正确xml字符串,因此数据库会自动转换为xmltype。
我不确定,但我怀疑有没有单词必须使用XMLType绑定。
但是,如果在从字符串创建XML时需要更多的控制,则可能需要使用它。
查看XMLType constructors获得一个想法。
https://stackoverflow.com/questions/19664377
复制相似问题