是别人写的存储过程,但是第一次执行执行不了,原来是第一步没有设置导致的,故将过程写出来与各位共享
第一步 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