oracle存储过程直接将查询结果保存为XML

是别人写的存储过程,但是第一次执行执行不了,原来是第一步没有设置导致的,故将过程写出来与各位共享
第一步  CREATE OR REPLACE DIRECTORY UTL_FILE_DIR as 'k:/datafile';--保存xml文件的目录

 

--'k:/datafile'是你本地的文件目录,必须存在,这一步必须要你登陆的oracle用户具有create DIRECTORY 权限,如果没有这个权限,请申请管理员添加该权限。


第二部 生成测试表
create table PEOPLE
(
  PERSONID VARCHAR2(114) not null,
  NAME     VARCHAR2(150),
  ADDRESS  VARCHAR2(200),
  TEL      VARCHAR2(50),
  FAX      VARCHAR2(50),
  EMAIL    VARCHAR2(100)
)
第三部 存储过程
CREATE OR REPLACE PROCEDURE OUTPUTPEOPLE(sqlStr VARCHAR2,file_path VARCHAR2)
 AS
     personRow PEOPLE%ROWTYPE;      --获取游标的行变量
     TYPE person_cur IS REF CURSOR; --自定义REF游标
     cur person_cur;
     tempSql varchar2(500) := 'SELECT * FROM PEOPLE ';       --初始的查询语句
     doc xmlDom.DOMDocument := xmldom.newDOMDocument;        -- 创建文档对象
     main_node xmlDom.DOMNode := xmldom.makeNode(doc);       -- 获得文档节点
     root_elmt xmlDom.DOMElement:= xmldom.createElement(doc, 'PEOPLE');   -- 创建根元素
     --==================================================
     --以下定义元素
     person_elmt xmlDom.DOMElement;      --定义P

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值