问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

oracle怎么执行xml文件

发布网友 发布时间:2022-04-23 16:08

我来回答

1个回答

热心网友 时间:2022-04-08 10:56

create table inputfile (
filename varchar2(30),
xmlcontent  xmltype,
sqlcontent  varchar2(3000)
);

create or replace directory TESTFILE as 'D:\work\oralce\';

create or replace procere alter_table (pi_file_name in varchar2)
is
  filehandle utl_file.file_type; 
  filebuffer varchar2(32767); 
  l_clob     clob;
  doc        DBMS_XMLDOM.DOMDocument;
  CDATA      VARCHAR2(3000);
begin 
  filehandle := utl_file.fopen('TESTFILE',pi_file_name,'R'); 
  IF utl_file.is_open(filehandle) THEN 
    dbms_output.put_line('file is open!'); 
  END IF;
  loop 
    begin 
      utl_file.get_line(filehandle,filebuffer); 
      dbms_output.put_line(filebuffer); 
      l_clob := l_clob||filebuffer;
    EXCEPTION 
      WHEN no_data_found THEN 
        --dbms_output.put_line('EXCEPTION0:'||SUBSTR(SQLERRM, 1, 100));
        exit;
      WHEN OTHERS THEN 
        dbms_output.put_line('EXCEPTION1:'||SUBSTR(SQLERRM, 1, 100));
    end; 
  end loop; 
   --doc := DBMS_XMLDOM.newDOMDocument(xmltype.extract(XMLType(l_clob),'/sqls/sql'));
  cdata:=xmltype.extract(XMLType(l_clob),'/sqls/sql').getClobVal();
  insert into inputfile(FILENAME, XMLCONTENT,sqlcontent )
  values(pi_file_name, XMLType(l_clob),replace(replace(replace(CDATA,'<sql><![CDATA[--',''),']]></sql>',''),'/',chr(10)||'/'||chr(10)));
  utl_file.fclose(filehandle);
  IF utl_file.is_open(filehandle) THEN 
    dbms_output.put_line('file is open!'); 
  else 
    dbms_output.put_line('file is close!'); 
  END IF; 
EXCEPTION 
  WHEN OTHERS THEN 
    dbms_output.put_line('EXCEPTION2:'||SUBSTR(SQLERRM, 1, 100)) ; 
end; 
/

exec alter_table('myTable.xml');

sql语句会去inputfile.sqlcontent.
循环取出值,然后execute immediate(sql);
稍微做些微调即可。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
黄山门户网主要栏目 壹家居品牌简介 湖南乐享生活家居有限公司一站式毛坯房解决方案 服务器出租 电脑上的时间日期不同步怎么办 台式电脑时间不同步怎么解决? 关于清明节的小学作文400字 微信怎么查询自己名下的微信 如何查看微信实名认证了几个账号 轿车120时速撞击力有多大? oracle utl_file 是打开客户端的文件还是服务器的文件 如何把oracle 存储过程 输出到文本 OPPO R17支持的WiFi频段有哪些? 求助下 用utl oppor17跟oppor15一样大吗? 机子是不是一样大? 或者r17要大一点? 如何使用oracle的文件系统作文件的上传 OPPOR17多少元? oracle用utl_file输出文件 OPPO R17支持什么WiFi? Oracle批量导出存储过程(保持每个存储过程独立) oracle将表A里的数据导出为txt文件,用存储过程怎么写? OPPOr17有没有8g+256g的? 执行存储过程时报错,ORA-06512: 在 &quot;SYS.UTL_FILE&quot;, line 536的解决办法... oracle生成insert语句的存储过程怎么写 ORACLE问题 oracle 中的utl_file.put_raw写文件是否有换行符? 使用utl_file从oracle导出查询的表数据到本机 oracle 有个问题不懂,求解! ORACLE 的存储过程中如何输出日志文件 oracle用utl_file导出表数据的问题 在oracle存储过程中调用utl_file.fremove删除两个文件夹下的图片... oracle读文件,帮我看一下哪里错了? 怎么申请注册企业版支付宝帐号,帐户申请方法 简单的手表怎么画,手表简笔画教程 画手表怎么画 如何用photoshop画手表 小天才手表怎么画好看 如何用corelDRAW画手表 15.00钟表怎么画请教教我吧? 手表表盘怎么画? 最简单的手表怎么做 如何画手表cad 二年级的小天才电话手表怎么画 儿童画钟表的步骤 快十二时的钟表怎么画 有没有教师资格证书的培训机构!纠 幼师什么意思? 教师资格证培训机构哪个比较厉害? 幼师需要具备哪些技能? 教师资格证考试哪家培训机构可以学习呢?