oracle解析xml(如何将Oracle查询结果转成XML文件)

2026-09-04 22:00:01 0

oracle解析xml(如何将Oracle查询结果转成XML文件)

其实oracle解析xml的问题并不复杂,但是又很多的朋友都不太了解如何将Oracle查询结果转成XML文件,因此呢,今天小编就来为大家分享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使用EXTRACTVALUE函数解析XML的使用方法,谢谢啦

1:创建表
create table AA(id number,c_cml clob);
2:插入字段
insert into aa values(1,to_clob(’《PurchaseOrder》
《DataElement name="member_id"》90558976001《/DataElement》
《DataElement name="hicn"》509488308A《/DataElement》
《DataElement name="EID"》285320《/DataElement》
《/PurchaseOrder》’));
3:查询
select extractvalue(xmltype(c_cml),’/PurchaseOrder/DataElement’),
extractvalue(xmltype(c_cml),’/PurchaseOrder/DataElement’),
id
from aa;

高分求教,Oracle 解析Pivot 生成的XML转为table,满意之后再加分

create or replace procedure ljz_pivot_xml_sp(pi_table_name   varchar2,
                                             pi_column_name  varchar2,
                                             pi_create_table varchar2) as
  v_column      nvarchar2(50);
  v_count       number := 0;
  v_i           number;
  v_parent_node nvarchar2(4000);
  v_child_node  nvarchar2(4000);
  v_over        boolean := false;
  v_tmp         nvarchar2(50);
  v_existsnode  number;
  v_sql         clob;
  v_name        varchar2(30);
  v_name_xml    xmltype;
begin
  v_sql         := ’select x.* from ’ || pi_table_name ||
                   ’ a, xmltable(’’/PivotSet’’ passing a.’ ||
                   pi_column_name || ’ columns ’;
  v_parent_node := ’/PivotSet’;
  v_child_node  := ’item’;
  v_i           := 1;
  execute immediate ’select ’ || pi_column_name || ’ from ’ ||
                    pi_table_name || ’ where rownum=1’
    into v_name_xml;
  select existsnode(v_name_xml,
                    ’/PivotSet/item’)
    into v_existsnode
    from dual;
  while v_existsnode = 1 loop
    execute immediate ’select substr(extractvalue(’ || pi_column_name ||
                      ’, ’’/PivotSet/item’’),1,30)
    from ’ || pi_table_name || ’ x’
      into v_name;
    v_sql := v_sql || ’"’ || v_name || ’" varchar2(30) path ’’item[’ ||
             to_char(v_i) || ’]/column’’,’;
    v_i   := v_i + 1;
    select existsnode(v_name_xml,
                      ’/PivotSet/item’)
      into v_existsnode
      from dual;
  end loop;
  v_sql := trim(’,’ from v_sql) || ’) x’;
  commit;
  select count(1)
    into v_count
    from user_tab_columns
   where table_name = upper(pi_create_table);
  if v_count = 0 then
    execute immediate ’create table ’ || pi_create_table || ’ as ’ || v_sql;
  end if;
end;

调用方法:

begin
ljz_pivot_xml_sp(’(select * from (select deptno,sal from emp) pivot xml(sum(sal) for deptno in(any)))’,
’deptno_xml’,
’ljz_pivot_tmp’);
end;

***隐藏网址***

oracle 获取xml某个节点的值

用XPath比较简单点.也可以用xmldom.
xmltype(’《?xml version="1.0" encoding="gbk"?》
《SERVICE》
《IDA_SVR_USERBILL》
《CALL_METHOD》queryProcessStepList《/CALL_METHOD》
《/IDA_SVR_USERBILL》
《/SERVICE》’).extract(’//CALL_METHOD/child::text()’).getstringval()
测试:
SELECT xmltype(’《?xml version="1.0" encoding="gbk"?》
《SERVICE》
《IDA_SVR_USERBILL》
《CALL_METHOD》queryProcessStepList《/CALL_METHOD》
《/IDA_SVR_USERBILL》
《/SERVICE》’).extract(’//CALL_METHOD/child::text()’).getstringval()
from dual;

如果你还想了解更多这方面的信息,记得收藏关注本站。

oracle解析xml(如何将Oracle查询结果转成XML文件)

本文编辑:admin

更多文章:


网站搭建招标方案(网站建设投标书怎么写)

网站搭建招标方案(网站建设投标书怎么写)

“网站搭建招标方案”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看网站搭建招标方案(网站建设投标书怎么写)!本文目录网站建设投标书怎么写网站建设方案包括哪些内容网站建设方法电子商务网站建设方案范文招标流程及注意事项~烟台网站

2025年8月24日 14:45

cpu script是什么意思(script是什么意思)

cpu script是什么意思(script是什么意思)

本篇文章给大家谈谈cpu script是什么意思,以及script是什么意思对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录script是什

2025年10月19日 07:00

he agreed to help(用need to do sth.和agree to do sth. 造句)

he agreed to help(用need to do sth.和agree to do sth. 造句)

各位老铁们,大家好,今天由我来为大家分享he agreed to help,以及用need to do sth.和agree to do sth. 造句的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我

2026年8月31日 01:00

instr函数的返回值(关于vb中InStr函数的一个小问题)

instr函数的返回值(关于vb中InStr函数的一个小问题)

今天给各位分享关于vb中InStr函数的一个小问题的知识,其中也会对关于vb中InStr函数的一个小问题进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录关于vb中InStr函数的一个小问题关于vb instr函

2026年1月26日 22:30

slcp是什么意思(matlab.*和matlab. s有什么区别)

slcp是什么意思(matlab.*和matlab. s有什么区别)

大家好,如果您还对slcp是什么意思不太了解,没有关系,今天就由本站为大家分享slcp是什么意思的知识,包括matlab.*和matlab. s有什么区别的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录matlab

2026年1月3日 12:00

db2数据库update后想恢复(你好,SQL修改错了,修改前没有备份,请问怎么还原到修改前的数据,你知道吗可以给联系方式我请教一下)

db2数据库update后想恢复(你好,SQL修改错了,修改前没有备份,请问怎么还原到修改前的数据,你知道吗可以给联系方式我请教一下)

大家好,关于db2数据库update后想恢复很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于你好,SQL修改错了,修改前没有备份,请问怎么还原到修改前的数据,你知道吗可以给联系方式我请教一下的知识点,相信应该可以解决大家的一

2026年9月17日 12:00

在线转换器人民币($1.8换算成人民币等于多少)

在线转换器人民币($1.8换算成人民币等于多少)

大家好,在线转换器人民币相信很多的网友都不是很明白,包括$1.8换算成人民币等于多少也是一样,不过没有关系,接下来就来为大家分享关于在线转换器人民币和$1.8换算成人民币等于多少的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开

2026年5月23日 09:45

python速成(想学python有什么建议)

python速成(想学python有什么建议)

大家好,关于python速成很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于想学python有什么建议的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录想

2025年10月21日 19:30

assert python用法(python:assert_raises() 怎么用啊,有哪些参数 请说得详细些,先谢谢了!)

assert python用法(python:assert_raises() 怎么用啊,有哪些参数 请说得详细些,先谢谢了!)

大家好,今天小编来为大家解答以下的问题,关于assert python用法,python:assert_raises() 怎么用啊,有哪些参数 请说得详细些,先谢谢了!这个很多人还不知道,现在让我们一起来看看吧!本文目录python:ass

2026年7月11日 08:30

中国学术网官网首页(中国知网如何查外文文献)

中国学术网官网首页(中国知网如何查外文文献)

大家好,今天小编来为大家解答以下的问题,关于中国学术网官网首页,中国知网如何查外文文献这个很多人还不知道,现在让我们一起来看看吧!本文目录中国知网如何查外文文献教师论文发布在哪个网站中国知网如何查外文文献中国知网如何查外文文献如下:1、在知

2026年8月12日 09:15

尚德机构是正规培训吗(尚德机构是正规培训吗)

尚德机构是正规培训吗(尚德机构是正规培训吗)

大家好,今天小编来为大家解答以下的问题,关于尚德机构是正规培训吗,尚德机构是正规培训吗这个很多人还不知道,现在让我们一起来看看吧!本文目录尚德机构是正规培训吗尚德机构正规吗尚德教育真的是骗子吗尚德机构是正规的吗尚德机构怎么样尚德机构是否真的

2026年3月24日 12:15

在我们当中中文版下载(如何下载在我们之中超多职业)

在我们当中中文版下载(如何下载在我们之中超多职业)

本篇文章给大家谈谈在我们当中中文版下载,以及如何下载在我们之中超多职业对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录如何下载在我们之中超多职业《AmongUs在我们之中》配置要求一览如何下载在我们之中超多职业直接在百度里搜索

2026年9月14日 16:45

this is it歌词好诡异(Turn The Lights On的歌词翻译)

this is it歌词好诡异(Turn The Lights On的歌词翻译)

今天给各位分享Turn The Lights On的歌词翻译的知识,其中也会对Turn The Lights On的歌词翻译进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录Turn The Lights On的

2025年7月26日 02:30

tabletennis安卓游戏(table tennis touch多人游戏时提示game center断开链接怎么解决)

tabletennis安卓游戏(table tennis touch多人游戏时提示game center断开链接怎么解决)

各位老铁们好,相信很多人对tabletennis安卓游戏都不是特别的了解,因此呢,今天就来为大家分享下关于tabletennis安卓游戏以及table tennis touch多人游戏时提示game center断开链接怎么解决的问题知识,

2025年8月8日 17:15

周杰伦什么时候出专辑(周杰伦的第一张专辑是什么时候)

周杰伦什么时候出专辑(周杰伦的第一张专辑是什么时候)

大家好,周杰伦什么时候出专辑相信很多的网友都不是很明白,包括周杰伦的第一张专辑是什么时候也是一样,不过没有关系,接下来就来为大家分享关于周杰伦什么时候出专辑和周杰伦的第一张专辑是什么时候的一些知识点,大家可以关注收藏,免得下次来找不到哦,下

2026年4月8日 15:00

cad三维制图入门教程(cad初学者怎么入门)

cad三维制图入门教程(cad初学者怎么入门)

各位老铁们好,相信很多人对cad三维制图入门教程都不是特别的了解,因此呢,今天就来为大家分享下关于cad三维制图入门教程以及cad初学者怎么入门的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录cad初学者怎么入门

2026年8月15日 23:45

迷你qq头像(2021头像可爱呆萌男生,寻找一些头像小男孩的那种)

迷你qq头像(2021头像可爱呆萌男生,寻找一些头像小男孩的那种)

这篇文章给大家聊聊关于迷你qq头像,以及2021头像可爱呆萌男生,寻找一些头像小男孩的那种对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录2021头像可爱呆萌男生,寻找一些头像小男孩的那种手机QQ如何设置隐形头像有什么好看的Q

2026年2月14日 13:00

微信上墙源码(如何制作微信墙)

微信上墙源码(如何制作微信墙)

今天给各位分享如何制作微信墙的知识,其中也会对如何制作微信墙进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录如何制作微信墙微信墙怎么做微信墙的运行原理微信墙的制作方法微信墙PHP源码在哪下载微信上墙!如何制作微

2026年1月12日 04:45

楷体字是什么样的?楷书可以分为哪几种

楷体字是什么样的?楷书可以分为哪几种

今天给各位分享楷体字是什么样的的知识,其中也会对楷体字是什么样的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录楷体字是什么样的楷书可以分为哪几种什么是楷书楷书是常见的字体,四大楷体分别指的是什么楷体怎么写楷书

2025年8月8日 20:15

write的过去式和ing形式(初一所有动词的过去式)

write的过去式和ing形式(初一所有动词的过去式)

大家好,write的过去式和ing形式相信很多的网友都不是很明白,包括初一所有动词的过去式也是一样,不过没有关系,接下来就来为大家分享关于write的过去式和ing形式和初一所有动词的过去式的一些知识点,大家可以关注收藏,免得下次来找不到哦

2026年4月15日 04:15

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索