- 浏览: 1332453 次
- 性别:
- 来自: 合肥
文章分类
- 全部博客 (404)
- ToDoList (24)
- 项目管理 (39)
- REDMINE (1)
- Oracle (32)
- 杂文 (21)
- 管理 (19)
- Java (6)
- 全文搜索 (1)
- 编程语言排名 (4)
- 人力资源 (5)
- SVN (1)
- CMMI (2)
- VER (1)
- VAL (1)
- 其他 (8)
- OceanBase (1)
- IT PRO (2)
- KVM (1)
- Access (1)
- Drupal (3)
- mysql (4)
- 理财 (1)
- 读书笔记 (6)
- 个人总结 (16)
- 我的推荐 (13)
- REDMINE培训材料 (0)
- 随笔 (10)
- AIX (1)
- 管理故事 (12)
- 工具推荐 (6)
- 系统架构 (5)
- 免费活动 (3)
- 名词解释 (3)
- Apache (5)
- mongrel (4)
- redmine插件 (0)
- 知识管理 (4)
- REDMINE第三方应用 (5)
- redmine问题 (0)
- NOSQL (1)
- UML (1)
- SQLite (1)
- use case,UML (1)
- nginx (5)
- 规划 (1)
- 系统思考 (1)
- resin (2)
- android (43)
- android代码 (10)
- HTML5 (1)
- 移动开发 (4)
- android问题 (3)
- DB2 (4)
- http (1)
- LBS (1)
- IT职业规划 (11)
- 微信 (1)
- 就业 (1)
- google (2)
- 微信开发 (2)
- js (1)
- Anroid (1)
- Service Worker (1)
- weblogic (2)
- 测试 (1)
- weblogi (1)
- vue (4)
- jeeplus (1)
- ureport (1)
最新评论
-
Caelebs:
上海交大?ms工作六年?感觉好屌啊我厂一堆10K 20K 98 ...
IT人为什么难以拿到高薪? -
小桔子:
如果加入listView 在滑动的时候偶尔会空指针异常,加入P ...
Android组件推荐-侧滑效果DragLayout -
wangyonglin1123:
小公司是锻炼人的 不管是业务技术都会有突飞猛进的进度 进步 ...
程序员在大公司工作好?还是在小公司工作?我的经历和建议[ZT] -
wangyonglin1123:
必须有所专长 技术和业务都需要 你必须在一个行业够牛逼
程序员的出路之一,拥有一技之长、打造自己的精品、更广阔的市场【ZT】 -
luhuajcdd:
这个不错
StarUML 不能在64位的windows7下运行,提示错误的解决方案
是别人写的存储过程,但是第一次执行执行不了,原来是第一步没有设置导致的,故将过程写出来与各位共享
第一步 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; --定义PERSON元素
name_elmt xmlDom.DOMElement; --定义NAME元素
address_elmt xmlDom.DOMElement; --定义ADDRESS元素
tel_elmt xmlDom.DOMElement; --定义TEL元素
email_elmt xmlDom.DOMElement; --定义EMAIL元素
--==================================================
--以下定义节点
root_node xmlDom.DOMNode; --定义PEOPLE节点
person_node xmlDom.DOMNode; --定义PERSON节点
name_node xmlDom.DOMNode; --定义NAME节点
address_node xmlDom.DOMNode; --定义ADDRESS节点
tel_node xmlDom.DOMNode; --定义TEL节点
email_node xmlDom.DOMNode; --定义EMAIL节点
temp_node xmlDom.DOMNode;
BEGIN
-- 向文档节点加入根节点:<PEOPLE></PEOPLE>
root_node := xmldom.appendChild(main_node, xmldom.makeNode(root_elmt));
--附加查询条件
tempSql := tempSql||sqlStr;
--打开游标
OPEN cur FOR tempSql;
--遍历游标
LOOP
FETCH cur INTO personRow;
EXIT WHEN cur%NOTFOUND;
--===========================================================================--
person_elmt := xmldom.createElement(doc, 'PERSON'); --创建PERSON元素
-- 向PEOPLE节点加入 PERSON节点<PERSON></PERSON>
person_node := xmldom.appendChild(root_node, xmldom.makeNode(person_elmt));
--===========================================================================--
--向PERSON节点加入属性PERSONID
xmlDom.SETATTRIBUTE( person_elmt, 'PERSONID', personRow.personId );
--===========================================================================--
name_elmt := xmldom.createElement(doc, 'NAME'); --创建NAME元素
--向PERSON节点加入子节点NAME
name_node := xmldom.appendChild(person_node,xmlDom.makeNode(name_elmt));
--向NAME节点加入文本
temp_node := xmldom.appendChild(name_node , xmlDom.makeNode(xmldom.createTextNode(doc,personRow.name)));
--===========================================================================--
address_elmt := xmldom.createElement(doc, 'ADDRESS'); --创建ADDRESS元素
--向PERSON节点加入子节点ADDRESS
address_node := xmldom.appendChild(person_node,xmlDom.makeNode(address_elmt));
--向ADDRESS节点加入文本
temp_node := xmldom.appendChild(address_node, xmlDom.makeNode(xmldom.createTextNode(doc,personRow.address)));
--===========================================================================--
tel_elmt := xmldom.createElement(doc, 'TEL'); --创建TEL元素
--向TEL节点加入子节点 NAME
tel_node := xmldom.appendChild(person_node,xmlDom.makeNode(tel_elmt));
--向TEL节点加入文本
temp_node := xmldom.appendChild(tel_node, xmlDom.makeNode(xmldom.createTextNode(doc,personRow.tel)));
--===========================================================================--
email_elmt := xmldom.createElement(doc, 'EMAIL'); --创建EMAIL元素
--向PERSON节点加入子节点EMAIL
email_node := xmldom.appendChild(person_node,xmlDom.makeNode(email_elmt));
--向EMAIL节点加入文本
temp_node := xmldom.appendChild(email_node, xmlDom.makeNode(xmldom.createTextNode(doc,personRow.email)));
--===========================================================================--
END LOOP;
CLOSE cur;
--写入硬盘
xmlDom.writeToFile(doc,'UTL_FILE_DIR'||'/'||file_path,'GBK');
EXCEPTION
WHEN OTHERS THEN
DBMS_output.PUT_LINE(SQLERRM);
END OUTPUTPEOPLE;
发表评论
-
画图解释SQL联合语句
2014-05-05 07:49 1165英文原文;Jeff Atwood,编译:伯乐在线 ... -
oracle中使用decode进行数据的列转换为行的试验
2012-07-20 07:18 1249如何将以 ... -
RAID 5和RAID 10 的比较--- 针对数据库服务器存储方案的选择
2011-12-27 21:51 3034RAID 5和RAID 10 的比较 RAID5 和 ... -
百度技术沙龙海量用户的数据挖掘与行为分析(1月7日 京仪大酒店)免费
2011-12-27 08:41 2048百度技术沙龙第二十二 ... -
对于单表数据超过1亿的数据查询时候,必须默认时间段查询条件
2011-12-21 16:40 3269项目基本情况 最近系统碰到一个非常头疼的问题,数据库采 ... -
第二届华东地区数据库大会(2011.12.11)上海 免费
2011-12-06 13:53 1236第二届华东地区数据库 ... -
甲骨文发布Oracle NoSQL 数据库 -看来NOSQL大行其道了
2011-10-25 13:28 1383甲骨文公司在10月2日召开的OpenWorld 2011大 ... -
慎用create table as select,一定要注意默认值的问题
2011-08-01 12:06 12309再做一些数据迁移时候,很多人会使用create table ... -
ORA-26563: 不允许重命名此表的解决方法
2011-04-13 14:23 3819今天准备导入一个表,但是为了保留一个备份,准备新导入一个表,把 ... -
就因为多一个%,害的整个服务器差点挂掉
2011-04-11 17:13 2678oralce10g数据库一张表,由于一个表数据量比较大,大概1 ... -
Sybase在线研讨会:复杂事件处理与实时分析应用(4月14日 周四,免费)
2011-04-11 12:37 1372课程内容介绍 这次我们特别邀请了 Sybase软件(中国)有 ... -
最新Oracle技术沙龙(3.20)
2011-03-16 09:44 1274PSC 奉献特别圆桌会议 陈卫星- ... -
Oracle 中 ROWNUM 的使用技巧-rownum和order by
2011-03-01 15:30 1441ROWNUM和Order BY 要注意的是:在使用ROWN ... -
5款主流开源数据库的比较
2011-02-24 15:36 7874开源数据库使得信 ... -
甲骨文推数据库防火墙 监控SQL攻击
2011-02-19 20:00 1237oracle终于发布了一个不是让大多数人讨厌的事情,在 ... -
查询oracle所有执行sqlid中disk读取比重大的sql
2011-01-22 17:05 1833通过查询V$sql来查询sql读写disk次数最多的sql排序 ... -
如何查看正在执行指定sqlid的sql的执行时间
2011-01-22 16:37 2986最近在优化sql,发现有个sql_id对应的sql的IO读取量 ... -
create index注意n如果是大表建立索引,切记加上ONLINE参数
2011-01-21 22:43 20791这几天在做数据库的优化,有个2亿记录的表,发现需要添加一个联合 ... -
如何快速的获取oracle数据库中表中记录行数,不使用select count(1)方式
2010-11-21 11:44 5368数据库版本:Oracle 10G 今天查询下数据库中一 ... -
MySQL价格提升了,JVM要收费了,ORACLE想干嘛了
2010-11-08 12:53 3525甲骨文一变再变 MySQL企业版价格提升 未来,甲骨 ...
相关推荐
Oracle存储过程则是在Oracle数据库中预编译的一系列SQL和PL/SQL语句,可以视为数据库端的可执行代码。 在描述中提到的“使用批处理进行oracle存储过程脚本的创建和更新的处理”,这可能意味着开发者使用批处理命令...
大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,建立临时LOB。 大数据量,返回值虽然是CLOB,依然会报错; CLOB变量需要dbms_lob.createtemporary,临时表空间中,...
本文介绍了如何在Oracle中通过存储过程将数据库查询结果转换为XML文件的详细过程。这种技术不仅可以应用于Oracle数据库本身的数据导出,还可以作为其他系统之间数据交换的基础。通过自定义存储过程,可以灵活地控制...
总结来说,这个入门实例涵盖了使用Java通过JDBC调用Oracle存储过程进行CRUD操作的基本流程,以及利用DOM4J解析XML配置文件和`ThreadLocal`管理数据库连接的方法。这样的设计使得程序更加模块化,易于维护,同时也...
2. 存储XML数据:现代数据库系统,如SQL Server、Oracle等,支持将XML数据直接存储在数据库中,提供了处理XML数据的特有函数和操作。 3. XML与SQL的集成:通过XMLA(XML for Analysis)等接口,可以使用XML与SQL ...
### Oracle使用XMLDOM包保存XML节点数据到数据库表中的实践 #### 一、背景与需求分析 在实际项目开发过程中,经常会遇到与第三方系统交互的需求。这些第三方接口往往返回的数据格式为XML。为了方便后续处理及存储...
- 在存储过程中,`SELECT` 后的字段必须跟 `INTO` 关键字,将结果保存到变量中,除非使用游标处理多行记录。 - 使用 `SELECT...INTO...` 时,确保查询结果存在,否则会抛出"No data found"异常。 - 别名不应与...
例如,在一个表中可能有一个字段名为`warehouse_spec`,该字段就是用来保存仓库信息的XML文档。 - **XPath_string**:这是一个字符串,用于指定XML文档中需要操作的节点路径。路径可以是绝对路径(如`/info/Owner`...
最后,我们将创建一个存储过程,该过程接收 XML 格式的参数,并使用之前定义的函数来解析这些参数,从而获取相应的检查报告信息。以下是一个示例存储过程: ```sql CREATE PROCEDURE dbo.sp_GetReport @xmlInput ...
3. **转换数据**: 使用数据库提供的功能或编程语言(如Python、Java、PHP)的库将查询结果转换为XML。例如,SQL Server有`FOR XML`子句,MySQL有`XML CONCAT`函数,而Python有`xml.etree.ElementTree`模块。 4. **...
ORACLE XML DB 为用户提供了一种强大的工具,不仅可以高效地存储和检索 XML 数据,还能充分利用 Oracle 数据库本身的优势。通过结合 XML 技术与关系数据库技术,ORACLE XML DB 实现了数据管理的高度灵活性和强大功能...
Oracle 10g 数据库提供了多种审计方式,其中包括将审计跟踪保存在系统表 SYS.AUD$、操作系统事件日志以及XML文件中。本篇重点讨论如何启用和利用XML格式的审计跟踪,它提供了诸多优势,比如便于外部工具处理、增强...
1. **XML DB概述**:Oracle XML DB是Oracle数据库对XML数据的支持,它将XML数据作为第一类公民,提供了存储、索引、查询、验证和转换XML文档的全面功能。 2. **存储方式**:Oracle XML DB使用BFILE、BLOB、CLOB或...
同时,Oracle的DBMS_XSLPROCESSOR包可用于XML文档的转换,DBMS_XMLGEN用于生成XML,DBMS_XMLSAVE用于保存XML到数据库,这些工具进一步增强了XML在Oracle中的处理能力。 总之,Oracle数据库通过XDB组件和XMLTYPE数据...
在保存过程中,Excel会尝试识别表格中的结构并将其转换为XML元素。用户还可以利用Excel的宏功能,编写自定义脚本来自动化这个过程,实现批量生成XML文件。 接下来,我们讨论“存储过程”。存储过程是数据库管理中的...
XSU是Oracle 8i版本后引入的一组Java类,它允许应用程序通过JDBC与数据库进行交互,将查询结果以XML格式返回,同时也能将符合数据库模式的XML文档插入到数据库中。 XSU的主要功能包括: 1. **XML到关系数据的转换*...
DBMS_XMLDOM提供了一系列的函数和过程,用于创建、修改、遍历和保存XML文档。例如,你可以使用DBMS_XMLDOM.newDoc()来创建一个新的XML文档对象,使用DBMS_XMLDOM.parseXML()将XML字符串解析成DOM树,然后通过DBMS_...
根据映射规则,将查询结果转换成相应的XML结构。 - **处理复杂数据类型**:如果数据库包含复杂数据类型,如数组或自定义对象,需要将其拆分成多个XML元素或使用XML的特殊结构(如CDATA或属性集合)来表示。 - **...
这些类包括XMLDoc和XMLType,它们是XML数据的主要接口,允许开发者将XML文档直接存储为数据库中的列或行。 3. **XMLDoc类**:XMLDoc类用于构建和管理XML文档对象。它支持从字符串、文件或输入流加载XML数据,以及将...
例如,可以将XML文档存储为CLOB(字符大对象)类型,利用Oracle提供的XMLType数据类型来操作XML文档。此外,Oracle还支持对XML文档进行查询和修改,如XQuery和SQL/XML,后者是一种将XML数据和SQL语言结合使用的标准...