做的是Oracle对XMLType字段的操作1、先创建一个名未test.xml的配置文件。
<?xml version="1.0" encoding="UTF-8" ?>
<collection xmlns="">
  <record>
    <leader>-----nam0-22-----^^^450-</leader>
    <datafield tag="200" ind1="1" ind2=" ">
      <subfield code="a">抗震救灾</subfield>
       <subfield code="f">奥运会</subfield>
    </datafield>
    <datafield tag="209" ind1=" " ind2=" ">
      <subfield code="a">经济学</subfield>
       <subfield code="b">计算机</subfield>
       <subfield code="c">10001</subfield>
       <subfield code="d">2005-07-09</subfield>
    </datafield>
    <datafield tag="610" ind1="0" ind2=" ">
       <subfield code="a">计算机</subfield>
       <subfield code="a">笔记本</subfield>
    </datafield>
  </record>
</collection>
2、在Oracle中创建一个存放该XML文件的表:
create or replace table xmlexample(
ID varchar2(10),
name varchar2(20),
data xmltype
)
insert into xmlexample(id,name,data)
values(sys_guid(),'my document',
        xmltype
        (
         bfilename(filepath,filename),
         nls_charset_id('AL32UTF8')
        )
)
其中bfilename(filepath,filename),filename为文件名。这里的filepath filename该改成什么?不改总报错

解决方案 »

  1.   

    filepath和filename是否改成你实际的文件路径和文件名?没处理过这个函数
      

  2.   


    create table xmlexample(
     ID varchar2(100),
     name varchar2(20),
     data xmltype
     );
     
     insert into xmlexample(id,name,data)
     values(sys_guid(),'my document',
     xmlType.createXML(xmlData => 
     '<?xml version="1.0" encoding="UTF-8" ?>
     <collection xmlns="">
       <record>
         <datafield tag="200" ind1="1" ind2=" ">
           <subfield code="a">抗震救灾</subfield>
            <subfield code="f">奥运会</subfield>
         </datafield>
         <datafield tag="209" ind1=" " ind2=" ">
           <subfield code="a">经济学</subfield>
            <subfield code="b">计算机</subfield>
            <subfield code="c">10001</subfield>
            <subfield code="d">2005-07-09</subfield>
         </datafield>
         <datafield tag="610" ind1="0" ind2=" ">
            <subfield code="a">计算机</subfield>
            <subfield code="a">笔记本</subfield>
         </datafield>
       </record>
     </collection>'));
      

  3.   

    另外说一下,你的XML文件有语法错误。把这一行<leader>-----nam0-22-----^^^450-</leader>去掉。