网上有关“如何将Oracle查询结果转成XML文件”话题很是火热,小编也是针对如何将Oracle查询结果转成XML文件寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
在oracle中提供了许多内置的程序包,它们用于扩展数据库的功能。在开发应用程序时,可以利用这些程序包。数据库用户sys拥有oracle提供的所有程序包。他们被定义为共有同义词,并将执行权限授予了public用户组,任何用户都可以访问它们。其中DBMS_XMLQUERY包用于将查询结果转换为XML格式,DBMS_LOB程序包包含雨处理大型对象的过程和函数。下面我们看一下DBMS_XMLQUERY和DBMS_LOB的用法:
SQL> DECLARE
result CLOB;
xmlstr VARCHAR2(32767);
line VARCHAR2(2000);
line_no INTEGER :=1;
BEGIN
result :=DBMS_XMLQUERY.getXml('select empno,empname from employee');
xmlstr :=DBMS_LOB.SUBSTR(result,32767);
LOOP
EXIT WHEN xmlstr IS NULL;
line :=SUBSTR(xmlstr,1,INSTR(xmlstr,CHR(10)-1));
DBMS_OUTPUT.PUT_LINE(line_no || ':' || line);
xmlstr :=SUBSTR(xmlstr,INSTR(xmlstr,CHR(10)+1));
line_no :=line_no + 1;
END LOOP;
END;
在上面的例子中我们声明了一个CLOB数据类型的result变量,以及VARCHAR2类型的xmlstr和line两个变量。其中,getXml函数用于将查询结果转换为XML格式,SUBSTR函数检索子字符串,32767值指定要从CLOB数据类型读取的最大字节数。检索到的字符串存储xmlstr变量中。LOOP块循环执行,每次从xmlstr中读取一行。INSTR函数返回一个字符串在另一个字符串首次出现的位置。在此,该函数返回换行符在字符串中的位置,直到遇到下一行。
大家觉得例子的结果能不能读出我们预期的结果呢?试试就知道了!!!
结果如下:
<?xml version='1.0'?>
<ROWSET>
<ROW num="1">
<EMPNO>E001</EMPNO>
<EMPNAME>Jane</EMPNAME>
</ROW>
<ROW num="2">
<EMPNO>E002</EMPNO>
<EMPNAME>John</EMPNAME>
</ROW>
<ROW num="3">
<EMPNO>E003</EMPNO>
<EMPNAME>Joe</EMPNAME>
</ROW>
</ROWSET>
Oracle系统的简介
从一个 普通 的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员) 有两个内容你必须去弄清楚 第一个内容是如何成为一个Oracle Applications DBA(Oracle应用程序数据库管理员) 第二个内容是你要搞清楚Oracle应用程序背后的架构体系 也就是说你要明白诸如以下产品的结构体系 Oracle电子商务套件 Oracle i数据库 Siebel产品等 本文首先讲述如何从一个普通的Oracle DBA转变为一个Oracle Applications DBA(Oracle应用程序数据库管理员) 接着讲述一些Oracle应用软件架构方面的内容 如何成为Oracle应用程序数据库管理员 首先是角色的转变 Oracle Applications DBA(Oracle应用程序数据库管理员)对 普通 的Oracle DBA(Oracle数据库管理员)来说是一个很大的挑战 拿Oracle EBS DBA(Oracle 电子商务套件DBA)来说 不仅需要了解EBS的各个组件 服务 而且还要更主动和其他相关人员接触 一个Oracle Applications DBA(Oracle应用程序数据库管理员)不仅需要和其他DBA一样去负责managing sizing maintaining和 tuning database这些日常的数据库管理的工作 如果他的Apps database是OLTP系统的话 他还需要监察wait和lock Oracle E Business Suite还有一些特性需要DBA去完成 比如从外部资源里灌数据到Apps database里 或支持开发人员从已有数据中提取数据 接着工作内容的转变 作为一个Oracle Applications DBA(Oracle应用程序数据库管理员) 要想更好的对Oracle Application database做支持 需要仔细记住以下几项 ? .网络上没有什么比较容易简单的文档让你去熟悉Apps DBA 所以我建议去看帮助 ? .在你没有经过多次测试并且得到客户认可的时候不要去打补丁 并且你要确信这个补丁解决了现有的问题 而且没有带来其它新的问题 ? .记住Oracle Applications会有很多索引 定期rebuild index会对性能有好处 当然做这项工作应该在系统的空闲时间 ? .不要为了提高性能而在没有询问oracle Support前试着去增加额外的indexes 如果你一定要去做 那千万记住要有文档作记录 因为在这之后你再打patch的时候它可能会把你做的修改自动复原 ? .知道怎么样是正确的打patch 先计划打哪个patch 然后取得patch 接着打patch 测试 最后文档记录 ? .要知道任何时刻数据库都可能会有一些object 是invalid的 你的一些操作也会增加invalid objects 定期检查这些invalid objects的数量 然后定期用utlrp去重新编译 utlrp squ在ORACLE HOME的rdbms/admin下 需要用SYS运行 在你的DB运行过程中如果碰到错误 就可以先重新编译invalid objects 如果没有解决问题再去递交iTAR(Internet created Technical Assistance Request) ? .能看懂日志 ? .了解Apps database的环境 包括操作系统和DB的 当你对你的工作环境了如指掌后 一切也就变得容易了 那时 你就是一个悠闲的Apps DBA了 另外 对于APPS DB(应用程序数据库)来说 你可能需要创建或拷贝(克隆)多个生产库以外的数据库 比如测试和开发数据库 当然 需要多少数据库是由你的商业需求所决定的 开发环境数据库是供开发人员进行report PL/SQL等开发的 这个环境可以在开发人员觉得数据已经不再满足开发需求的时候 当然也可以在这个环境测试补丁(patches) 当然最终使用patch的时候还需要在测试环境做测试 因为测试数据库是和生产数据库环境最接近的 (上面说的克隆cloning是一种将applications layer和database layer完全复制的一种方法 )所以 当你拥有这三个数据库的时候 打patch的步骤是先development database再test database最后才在production database环境应用 构架应用体系 如果你研究过Oracle Forms 使用过Application Server和Developer Suite来开发 配置部署form和report 并且曾经作为一名Oracle DBA 经历过许多管理和维护的工作如patching和cloning的话 那么你就已经能够掌握了OA %的内容 Oracle Apps应该是这样的应用软件 高速度 低拖延的ERP应用软件 使用Oracle所能提供的最好的web和数据库组件 我说的对吗?实际上不完全对 在 的版本里 你能看到应用服务器最早期的一个版本 并且Oracle的版本还是 EBS环境最简单配置也包括两个服务器 这两个服务器也就是我们熟知的两层 数据库层 和中间层 也叫应用层 数据库层就如字面的意思 就是应用程序的后端数据库 中间层就类似Application Server(应用程序服务器) 中间层 在中间层 更确切的说运行在中间层上的还有几种服务 所有的服务都不相同 有OC J report engine form等 你能看到应用服务器(Application Server)存在于中间层 另外还有Oracle应用程序具体的服务器 总的来说 有六种服务器存在于中间层和应用层 它们是 &# ; Web 服务器 &# ; Forms服务器 &# ; Reports 服务器 &# ; Discoverer服务器 &# ; 并发处理服务器 &# ; Admin服务器 至于Application Server 上面列举的其它服务器和Application Server性质不同的就是并发处理服务器了 对于并发处理服务器 我们可以认为它是一个助手的角色 在EBS用户请求和数据处理过程中协调作业和过程 另外 如现代的Application Server 上面列举的服务并不是每个都必须在相同的服务器上 我们可以类似的认为Oracle Apps配置就是对Forms 和 Reports 服务 以及后端数据库的配置 在app server 和数据库之间物理或者逻辑关系是什么样的?在Oracle应用程序世界里 在中间层生成的文件能够 有时是需要放到数据库层 这些文件大多以文本文件的形式存在 包括配置信息 其他文件是与cloning相关的 下面的图标有助于说明每层的主要组成部分 该图标来自Oracle Applications Concepts Release i的图 如下图所示 ? 在中间层有许多的 父级 目录 特别要提到其中的两个 这个两个在文档中一次又一次的看到 它们就是APPL_TOP 和MON_TOP 数据库层 数据库层又是什么样子了?令人惊奇的是 Oracle Apps数据库文件格式或许令人难以置信 并不是由于它的复杂性 而恰恰是一点都不复杂 同样在 父级 结构中 数据库有四种数据 他们分别是数据 索引 系统和临时表空间位置 你或许能看到所有的和数据库文件相关的数据都放在一个路径 或者分区里 所有的索引也是在一个路径下 同样系统和临时表空间也是如此 重做日志能够放在两个位置 你或许看到上百的表空间都有一到两个文件 你能看到四个表空间模型 说到重做日志和一般的重做操作 我们肯定知道的一件事情就是在真实的DBA世界里 我们希望重做日志存在快速磁盘中 由于写入量的缘故 你曾经在磁盘中放置一个控制文件吗?如果你没有看到控制文件在事务等待过程中并行写入 那么看一看Oracle Apps安装过程 情况就是这样的 当前文档声称或者说分配重做日志缓冲区大小最好是 MB Oracle在MetaLink上有一个注释 推荐Oracle Apps DBA将重做日志缓冲区设为 MB 另外一个和一般数据库不同的地方就是必须要设置初始参数 在初始文件中设置初始参数还不常见 在使用Oracle Apps时 你不得不向你的OLTP或者DSS数据库打补丁的时候 如何保证 个 的可靠性呢 个 的可靠性意味着每年只有 分钟的停机时间 好了 虽然说没有这么严格 但是仍旧有许多测试工作和质量保证工作需要完成 为了更好的服务于最终用户 你还需要了解些Apps的结构 并且掌握专有名词的含义 比如虽然你不需要掌握财务模块是如何实现的 但是还是需要知道AR是借 AP是贷 GL是总帐 这样你在遇到问题的时候就可能及时知道数据是怎么来的 是那个模块 该找什么人去沟通 你如何备份你的数据库?在EBS中 数据库备份时非常直接的 中间层组件就有一些复杂了 庆幸的是 Oracle开发了一个叫做Rapid Clone的工具 步骤归纳如下 &# ; 在每层运行基于perl的脚本语言(创建一个XML文件 里面包含了配置信息 不过对源系统不影响) &# ; 将每层的相关部分复制到目标系统 &# ; 运行基于perl语言的config/clone脚本来重新配置环境或者每层的context文件 Application middle tier database之间有着复杂的连接 常常某一个地方出了问题却在其他地方上表现出来(有点象中医) 或者说在一个地方出的问题 影响到另一个地方 又影响到其他 然后最终影响到整体性能 比如一个FORM 没有被正确执行 而你作为一个DBA可能最先发现的是性能的下降 这会让你很头疼 另外 在打补丁后 原有的forms 或 reports也可能在执行上与打补丁之前有所不同了 最后 我要说 你现在接触和管理的是比你以前复杂的多的系统 这套系统的每一个部分都不能单独来看 一叶障目 不见泰山 遇到问题应该从整体思考 一个Apps DBA是一个对这套系统每一部分都有所了解的人 结论 Oracle Applications DBA(Oracle应用程序数据库管理员)比 普通 的Oracle DBA(Oracle数据库管理员)门槛高了很了很多 不仅要有处理数据库问题的能力 还需要了解整个应用程序的构架 从大处着眼 整体考虑问题 总之 扮演者DBA 和 系统分析师的角色 ? lishixinzhi/Article/program/Oracle/201311/16510
Oracle是由甲骨文公司开发出来的,并于1989年正式进入中国市场,成为第一家进入中国的世界软件巨头。当然,当时的Oracle尚名不见经传,由Oracle开发的商用关系型数据库技术即年开始服务于中国用户。1991年7月,Oracle在北京建立独资公司。Oracle数据库,是积聚了众多领先性的数据库系统,在集群技术、高可用性、商业智能、安全性、系统管理等方面都领跑业界。
与Oracle数据库基本同时期的还有informix数据库系统。两者使用的用户有所侧重。Oracle数据库系统银行业使用较多,informix数据库系统,通讯业使用较多。
由于ORACLE数据库产品是当前数据库技术的典型代表,她的产品除了数据库系统外,还有应用系统、开发工具等。刚接触Oracle的人员都有这样的感觉:Oracle的产品太多,每个产品内容精深,不知道从哪儿开始学才好。为了用少量时间更好地理解和使用oracle数据库系统,有必要对oracle的一些基本术语及概念进行了解,下面给出一些在管理中经常用到的概念和术语,供初学者快速了解Oracle数据库系统提供方便。
ORACLE7和ORACLE8
ORACLE7是一种完全的关系数据库系统,它不支持面向对象。 ORACLE8 则是一个引入面向对象的数据库系统,它既非纯的面向对象的数据库也非纯的关系数据库,它是两者的结合,因此叫做“对象关系数据库”。
ORACLE8和ORACLE8i
在ORACLE8 的后来版本中不断作过多次的完善,出现 ORACLE 8.0.X 版本。然而1998年初发行(推出)的 ORACLE 8I 可以被看作是 ORACLE 8 的功能扩展集。 由于ORACLE 8I 比 ORACLE 8 提供了更多的功能,它除了共同的RDBMS功能外,还提供了许多与INTERNET 有关的能力,最重要的是它将 JAVA 集成为一种内部的数据语言,这种语言可充当或替代品,而且它还集成了一个WEB服务器和开发平台(Web DB )。对ORACLE 8.0.x 来说只到 ORACLE 8.0.5 版本就终止了,接着就推出了 ORACLE8i 8.1.5版本,ORACLE8i 8.1.5版本也经常被称为Release 1;而ORACLE8i 8.1.6版本被称为Release 2;ORACLE8i 8.1.7版本被称为Release 3。
ORACLE8i和ORACLE9i
在正式进入21世纪前的2000年年底,ORACLE公司正式发布了ORACLE 9i新数据库系统。原先预料可能会有ORACLE 8i V8.1.8等版本,但ORACLE8i版本只推出8.1.7就被Oracle9i所代替。ORACLE公司和其它的软件公司一样,为了抢占市场,不再愿意在原来版本上再作更多的改进和优化工作,而是直接的推出新产品这样一种策略。ORACLE9i 与ORACLE8i 比较,ORACLE 9i 主要包括下面三大部分:
l数据库核心(Database ) l应用服务器(Application Server )
l 开发工具集(Developer Suite ) Oracle9i 主要焦点(Oracle9i Focus ):
l电子商务智能化( E-Business Intelligence )。
l应用开发( Applications Development )
l应用主机( Applications Hosting )
l 门户与内容( Portals and Content )
l 电子商务连续性( E-Business Continuity ) Oracle9i 为了结合 Internet 市场设计。
Oracle9i适合并胜任市场上所有的苛刻要求。
l Oracle9I实时应用( Oracle9i Real Application)
l Oracle9I高可用性(Oracle9i High Availability) l Oracle9I系统管理( Oracle9i Systems Management ) l Oracle9I 安全( Oracle9i Security)
Oracle9i数据库服务(Oracle9i Database Services):
l商业智能与数据仓库( Business Intelligence and Data Warehousing)
l Oracle9I动态服务( Oracle9i Dynamic Services)
lOracle9I JAVA 和XML(Oracle9i Java and XML)l 电子商务集成(E-Business Integration)
ORACLE OAS和ORACLE iAS
ORACLE公司的iAS 的早期版本是 ORACLE Web Server ,后来第4版改名为ORACLE APPLICATION SERVER ,2000年底前又改名为 ORACLE9i Internet Application Server(ORACLE iAS)。iAS可以与ORACLE8i 或ORACLE9i 结合在一起的综合开发工具。为创建和部署任何基于网络的应用程序提供了一个完整的Internet 平台,iAS包括了门户、事务应用、商业智能工具、无线上网应用和企业集成等。 Oracle Internet Application Server 提供了行业中最全面的中间层产品,包括通信、表示、商业逻辑、数据缓存和系统服务等。
1.通信服务: 基于Apache的ORACLE HTTP Server,主要包括下面模块: mod_jserv:将对servlet 的HTTP请求分发到Oracle iAS 的Servlet 引擎。 Mod_perl:将perl 程序的HTTP请求分发到Apache Web Server 的Perl Interpreter。 Mod_ssl:提供基于SSL证书的公共密钥,它被用来在客户端和Apache Server 之间进行加密通信。 Mod_plsql:Oracle 专用模块,用来将HTTP请求传到数据库内的PL/SQL和Java存储过程。
2. 表示服务 提供下面方法进行内容表示: Oracle portal(Oracle 门户) Apache Jserver (Apache Java 服务器) Perl Interpreter( Perl解释程序) Oracle JavaServer Pager(JSP) Oracle PL/SQL Server Pages(PSP)
3.商业逻辑服务 可提供以下服务组件: Oracle8i JVM( Java虚拟机) Oracle8i PL/SQL Java 商业组件(BC4J) Form Service Report Service Discoverer Viewer
4.数据管理服务 Oracle 8i cache
5.系统服务 Oracle Enterprise Manager(Oracle企业管理器) Oracle Advanced Security (Oracle 高级安全性) Developer's KITS(开发工具),
包括:l Oracle database client developer's Kit l Oracle XML developer's Kit(XDK) l Oracle LDAP developer's Kit
ORACLE Application R11i
Oracle 公司除了提供完美的数据库系统外,也提供完整的解决方案的套件,即全套应用系统,通常称作 Oracle Application R11i。它是一全面集成的电子商务套件。它包括:
1.数据仓库平台
Oracle 8i 企业级数据库服务器
Oracle Warehouse Builder(数据仓库构造器)
2.商业智能工具集
Oracle Discoverer
Oracle Express产品系列
Oracle darwin
3.Oracle 金融服务应用 l 绩效管理 l客户关系管理l 风险管理
4.ORACLE财务系统基于Internet 的财务管理系统包括下面模块:
商业智能管理
预算管理
合并管理
现金预测管理
员工费用管理
Oracle 财务分析系统
Oracle项目管理系统
工作流程管理
预警系统。
关于“如何将Oracle查询结果转成XML文件”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[易真]投稿,不代表里驹号立场,如若转载,请注明出处:https://hnqlj.com/zlan/202509-4445.html
评论列表(3条)
我是里驹号的签约作者“易真”
本文概览:网上有关“如何将Oracle查询结果转成XML文件”话题很是火热,小编也是针对如何将Oracle查询结果转成XML文件寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在...
文章不错《如何将Oracle查询结果转成XML文件》内容很有帮助