create or replace procedure table2xml is
cursor person_cur is select * from people;
person_data people%rowtype;
doc xmldom.DOMDocument;
main_node xmldom.DOMNode;
root_node xmldom.DOMNode;
item_node xmldom.DOMNode;
person_node xmldom.DOMNode;
root_elem xmldom.DOMElement;
item_elem xmldom.DOMElement;
item_text xmldom.DOMText;
begin
open person_cur;
doc := xmldom.newDOMDocument;--创建文档对象
main_node := xmldom.makeNode(doc);--读取文档节点
root_elem := xmldom.createElement(doc,'people'); --添加一个元素(节点)
root_node := xmldom.appendChild(main_node,xmldom.makeNode(root_elem));
loop
fetch person_cur into person_data;
exit when person_cur%notfound;
item_elem := xmldom.createElement(doc,'peopleNo'); --添加 peopleNo 元素
xmldom.setAttribute(item_elem,'peopleID',person_data.personid);--添加peopleNo 属性
person_node:= xmldom.appendChild(root_node,xmldom.makeNode(item_elem));--添加为文档的子节点
item_elem :=xmldom.createElement(doc,'name');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.name); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
item_elem :=xmldom.createElement(doc,'address');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.address); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
item_elem :=xmldom.createElement(doc,'tel');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.tel); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
item_elem :=xmldom.createElement(doc,'fax');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.fax); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
item_elem :=xmldom.createElement(doc,'email');
item_node :=xmldom.appendChild(person_node,xmldom.makeNode(item_elem));
item_text :=xmldom.createTextNode(doc,person_data.emall); --设置元素的值
item_node :=xmldom.appendChild(item_node,xmldom.makeNode(item_text)); --把该值加入该节点中
end loop;
xmldom.writeToFile(doc,'e:\person.xml');
xmldom.freeDocument(doc);
close person_cur;
end;
分享到:
相关推荐
总结,使用Oracle存储过程导入XML文件数据涉及的关键步骤包括创建匹配的表结构、编写存储过程以解析XML并插入数据,以及调用存储过程执行导入。通过这种方式,可以高效地处理大量XML数据的导入工作,同时保持数据库...
本篇文章将深入探讨如何在Oracle存储过程中使用临时表,包括会话级临时表和事务级临时表。 ### 会话级临时表 会话级临时表(Session-Level Temporary Tables)只在创建它的会话内可见,并且在会话结束时自动删除。...
本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...
在描述中提到的“使用批处理进行oracle存储过程脚本的创建和更新的处理”,这可能意味着开发者使用批处理命令(如Windows的批处理文件`.bat`)来自动化执行创建或更新Oracle存储过程的任务。批处理文件可以包含一...
本话题将详细探讨如何在Oracle存储过程中调用外部的批处理脚本,如Windows系统的BAT文件,以实现数据库操作与系统命令的集成。 首先,`Oracle存储过程`是一种预编译的SQL和PL/SQL代码集合,可以被多次调用以执行...
在实际的业务场景中,有时我们需要调用数据库中的存储过程来获取或处理数据,本篇将详细介绍如何在润乾报表中调用Oracle存储过程。 首先,我们要在Oracle数据库中创建存储过程。以下是一个简单的存储过程示例,名为...
在Oracle数据库环境中,高效地生成指定复杂样式的XML文件是一项重要的任务,特别是在处理大量数据时。Oracle提供了多种方法来实现这一目标,包括使用PL/SQL过程、内置的XML函数以及XMLType对象。以下是对这个主题的...
在IT领域,特别是数据库操作与Java开发中,利用ibatis框架调用Oracle存储过程是一个常见的需求,这不仅能够提升代码的执行效率,还能增强应用程序的安全性。本文将深入解析ibatis如何与Oracle数据库中的存储过程进行...
总结,通过Java调用Oracle存储过程,我们需要配置JDBC驱动,建立数据库连接,创建CallableStatement,设置参数,执行存储过程,并处理返回的结果。在这个例子中,我们展示了如何调用一个简单的存储过程并打印返回的...
- Oracle XML DB提供了一种强大且灵活的方式来管理和存储XML文档,通过使用XMLType数据类型,开发者可以方便地将XML文档集成到现有的数据库应用程序中。 - Oracle XML DB库的引入极大地简化了非结构化数据的管理,...
3. 结果:执行后,存储过程会在A0表中创建或更新记录,这些记录包含生成的Java实体类和`.hbm.xml`映射文件的内容。由于A0是一个文本文件,可能需要额外的步骤来提取和处理这些数据,比如使用脚本将内容导出到实际的...
根据给定的部分内容,我们可以看到一个名为`DBToXml`的存储过程被创建用于将Oracle数据库中的数据转换为XML文件,并保存到指定目录下。该存储过程接受三个参数:SQL查询语句(`strSQL`)、目标目录路径(`dir`)和...
Oracle存储过程是一组预编译的SQL语句,可以在数据库服务器端执行,提供更好的性能和安全性。 1. **无返回值的存储过程**: 当存储过程不返回任何结果时,我们只需在MyBatis的Mapper接口中定义一个无返回值的方法...
总结来说,本示例展示了如何在Oracle存储过程中定义和使用结构化数组,以及如何在Java中调用这些存储过程并解析返回的多行多列数据。通过这种方式,你可以高效地处理复杂的数据结构,同时利用Java的灵活性来处理这些...
在Java中调用Oracle存储过程,我们需要使用JDBC(Java Database Connectivity),这是Java标准库提供的一组接口和类,用于与各种数据库进行通信。首先,我们需要添加Oracle JDBC驱动到项目中,例如ojdbc.jar。 1. *...
8. **XML流处理**: Oracle提供了流处理能力,允许在不完全加载XML文档到内存的情况下处理大型XML文件,从而节省资源并提高效率。 9. **XML安全**: Oracle数据库提供了一系列的安全特性,如角色、权限和审计,以保护...
通过这些资源,开发者可以学习到如何在实际项目中使用Oracle XML技术,例如创建XML存储过程、实现XML数据的CRUD操作、优化XML索引以及进行XML数据的转换和验证等。理解并掌握Oracle XML的使用,对于开发涉及XML数据...
需要注意的是,这种方法生成的XML文件是以文本形式输出的,如果需要XML文件以二进制格式存储,可以考虑其他方法,例如直接写入BFILE或通过PL/SQL的UTL_FILE包写入磁盘。 总的来说,Oracle的`dbms_xmlgen`包提供了一...
在Oracle中,可以通过编写存储过程等方式来实现XML文件的导入导出。 #### Oracle中XML文件的导入技术分析 首先,我们来看一下Oracle中导入XML文件的具体实现方法。在给定的部分内容中,提供了一个名为`add_to_...