问题描述
嗨,AskTOM团队,
I have the below code, I got the desired output. But I want to convert the output into XML format.
Please send the code for covert xml format
下面代码的输出是表数据,我想将数据转换为xml格式。如何实现它。
代码:
=
将serveroutput设置为on;
声明
p_query varchar2(32767);
l_theCursor integer默认dbms_sql.open_cursor; -- open_cursor: 要处理sql语句,我们必须有打开的游标
l_columnValue varchar2(4000);
l_status整数;
l_descTbl dbms_sql.desc_tab; -- desc_tab: 包含列信息
l_colCnt号;
n数: = 0;
L_TAB_NAME表 _type;
l_table_name varchar2(100);
程序p(msg varchar2) 为
l varchar2(4000) := 味精;
开始
而长度 (l) > 0
循环
dbms_output.put_line('数据' | | substr(l,1,80));
l := substr(l,81);
结束循环;
结束;
开始
选择TABLE_NAME从USER_TAB_COLUMNS批量收集到L_TAB_NAME
其中COLUMN_NAME = '查询 _ 否';
对于INDX IN 1 .. L_TAB_NAME.COUNT
循环
l_table_name:= L_TAB_NAME(INDX);
dbms_output.put_line('表名' | | l_table_name);
p_query:= '从' | | l_table_name | | '其中rownum<10';
立即执行 '更改会话集nls_date_format =' dd-mon-yyyy hh24:mi:ss '';
dbms_sql.parse( l_theCursor,p_query,dbms_sql.native ); -- parse: SQL语句必须通过调用解析过程来解析
-- Native: 指定程序所连接的数据库的正常行为
dbms_sql.describe_columns( l_theCursor,l_colCnt,l_descTbl ); -- describe_columns包含动态游标信息
我在1 ..L _ colcnt
循环
dbms_sql.define_column (l_thursor,i,l_columnValue,4000); -- define_column: 接收选择值
结束循环;
l_status := dbms_sql.execute(l_theCursor); -- execute: 执行查询
而 (dbms_sql.fetch_rows(l_theCursor)> 0)
循环 -- fetch_rows: successfully fetch the rows
我在1 ..L _ colcnt
循环
dbms_sql.column_value( l_theCursor,i,l_columnValue ); -- column_value: 确定FETCH_ROWS调用检索的列的值
p( rpad( l_descTbl(i).col_name,30 )| | ': '| | l_columnValue );
结束循环;
dbms_output.put_line( '-' );
n := n 1;
结束循环;
如果n = 0,则
dbms_output.put_line( chr(10)| | “找不到数据” | | chr(10) );
如果结束;
END 循环;
结束;
下面是我得到的输出,但我需要xml输出,xml输出的示例显示在最后请向下滚动
输出:
====
匿名阻止已完成
表名放弃 _ 帐户
数据查询 _ 编号: ZWT0NZ5D
数据ACCOUNT_NO: 66032376
数据查询 _ 时间戳: 09-12月-2016 15:08:07
数据评分 _ 阶段: 20
数据响应 _ 方法: 0
数据订单日期: 09-12月-2016 15:13:40
数据订单 _ 值: 0
数据订单 _ 指示器: N
数据信用 _ 波段: Y4
数据信用限制: 150
数据CA_ACCEPT_FLAG: t
数据品牌: Littlewoods全包
数据订单 _ 放置 _ 标志: Y
数据放弃 _ 标志: N
数据优先 _ 产品 _ 代码: 4G9ND
数据秒 _ 产品 _ 代码: K7GUF
数据报告 _ 标志: F
数据订单金额: 283.2
-----------------
数据查询 _ 编号: ZWT0NZ5F
数据ACCOUNT_NO: 66032378
数据查询 _ 时间戳: 09-12月-2016 15:08:09
数据评分 _ 阶段: 20
数据响应 _ 方法: 0
数据订单日期: 09-12月-2016 15:12:20
数据订单 _ 值: 124
数据订单 _ 指示器: Y
数据信用 _ 波段: U1
数据信用限制: 0
数据CA_ACCEPT_FLAG:
数据品牌: 公司8
数据订单 _ 放置 _ 标志: Y
数据放弃 _ 标志: N
数据优先 _ 产品 _ 代码: 73JPE
数据秒 _ 产品 _ 代码:
数据报告 _ 标志: Q
数据订单金额: 120
表类型:
创建或替换
类型table_type是varchar2(3200) 的表;
以下是预期的xml格式
XML格式:
===
<?xml版本 = "1.0"?>
<询问 _ 否 _ e35gjpm6>
<查询 _ 数据 _ 件>
<行>
<查询 _ 否> E35GJPM6查询 _ 否>
<评分阶段> 0评分阶段>
DP00019
SO182AE
<数据 _ 件 _ 时间戳/>
<行>
<查询 _ 否> E35GJPM6查询 _ 否>
<评分阶段> 0评分阶段>
DP08053
f
<数据 _ 件 _ 时间戳/>
I have the below code, I got the desired output. But I want to convert the output into XML format.
Please send the code for covert xml format
下面代码的输出是表数据,我想将数据转换为xml格式。如何实现它。
代码:
=
将serveroutput设置为on;
声明
p_query varchar2(32767);
l_theCursor integer默认dbms_sql.open_cursor; -- open_cursor: 要处理sql语句,我们必须有打开的游标
l_columnValue varchar2(4000);
l_status整数;
l_descTbl dbms_sql.desc_tab; -- desc_tab: 包含列信息
l_colCnt号;
n数: = 0;
L_TAB_NAME表 _type;
l_table_name varchar2(100);
程序p(msg varchar2) 为
l varchar2(4000) := 味精;
开始
而长度 (l) > 0
循环
dbms_output.put_line('数据' | | substr(l,1,80));
l := substr(l,81);
结束循环;
结束;
开始
选择TABLE_NAME从USER_TAB_COLUMNS批量收集到L_TAB_NAME
其中COLUMN_NAME = '查询 _ 否';
对于INDX IN 1 .. L_TAB_NAME.COUNT
循环
l_table_name:= L_TAB_NAME(INDX);
dbms_output.put_line('表名' | | l_table_name);
p_query:= '从' | | l_table_name | | '其中rownum<10';
立即执行 '更改会话集nls_date_format =' dd-mon-yyyy hh24:mi:ss '';
dbms_sql.parse( l_theCursor,p_query,dbms_sql.native ); -- parse: SQL语句必须通过调用解析过程来解析
-- Native: 指定程序所连接的数据库的正常行为
dbms_sql.describe_columns( l_theCursor,l_colCnt,l_descTbl ); -- describe_columns包含动态游标信息
我在1 ..L _ colcnt
循环
dbms_sql.define_column (l_thursor,i,l_columnValue,4000); -- define_column: 接收选择值
结束循环;
l_status := dbms_sql.execute(l_theCursor); -- execute: 执行查询
而 (dbms_sql.fetch_rows(l_theCursor)> 0)
循环 -- fetch_rows: successfully fetch the rows
我在1 ..L _ colcnt
循环
dbms_sql.column_value( l_theCursor,i,l_columnValue ); -- column_value: 确定FETCH_ROWS调用检索的列的值
p( rpad( l_descTbl(i).col_name,30 )| | ': '| | l_columnValue );
结束循环;
dbms_output.put_line( '-' );
n := n 1;
结束循环;
如果n = 0,则
dbms_output.put_line( chr(10)| | “找不到数据” | | chr(10) );
如果结束;
END 循环;
结束;
下面是我得到的输出,但我需要xml输出,xml输出的示例显示在最后请向下滚动
输出:
====
匿名阻止已完成
表名放弃 _ 帐户
数据查询 _ 编号: ZWT0NZ5D
数据ACCOUNT_NO: 66032376
数据查询 _ 时间戳: 09-12月-2016 15:08:07
数据评分 _ 阶段: 20
数据响应 _ 方法: 0
数据订单日期: 09-12月-2016 15:13:40
数据订单 _ 值: 0
数据订单 _ 指示器: N
数据信用 _ 波段: Y4
数据信用限制: 150
数据CA_ACCEPT_FLAG: t
数据品牌: Littlewoods全包
数据订单 _ 放置 _ 标志: Y
数据放弃 _ 标志: N
数据优先 _ 产品 _ 代码: 4G9ND
数据秒 _ 产品 _ 代码: K7GUF
数据报告 _ 标志: F
数据订单金额: 283.2
-----------------
数据查询 _ 编号: ZWT0NZ5F
数据ACCOUNT_NO: 66032378
数据查询 _ 时间戳: 09-12月-2016 15:08:09
数据评分 _ 阶段: 20
数据响应 _ 方法: 0
数据订单日期: 09-12月-2016 15:12:20
数据订单 _ 值: 124
数据订单 _ 指示器: Y
数据信用 _ 波段: U1
数据信用限制: 0
数据CA_ACCEPT_FLAG:
数据品牌: 公司8
数据订单 _ 放置 _ 标志: Y
数据放弃 _ 标志: N
数据优先 _ 产品 _ 代码: 73JPE
数据秒 _ 产品 _ 代码:
数据报告 _ 标志: Q
数据订单金额: 120
表类型:
创建或替换
类型table_type是varchar2(3200) 的表;
以下是预期的xml格式
XML格式:
===
<?xml版本 = "1.0"?>
<询问 _ 否 _ e35gjpm6>
<查询 _ 数据 _ 件>
<行>
<查询 _ 否> E35GJPM6查询 _ 否>
<评分阶段> 0评分阶段>
<数据 _ 件 _ 时间戳/>
<行>
<查询 _ 否> E35GJPM6查询 _ 否>
<评分阶段> 0评分阶段>
<数据 _ 件 _ 时间戳/>
专家解答
如果你想要你的输出以XML格式,你可以执行以下操作之一:
-手动构建XML
-调用XMLFOREST和类似的函数来创建文档
-使用DBMS_XMLGen
手动创建XML对于除了最琐碎的文档之外的所有文档都是不可启动的。使用XML * 函数可以控制文档的格式。但它可以是fidly写你的查询来做到这一点。
DBMS_XMLGen是最简单的。你只要把它一个查询,它就会把结果作为一个文档给你。每一行都在自己的行标签中:
-手动构建XML
-调用XMLFOREST和类似的函数来创建文档
-使用DBMS_XMLGen
手动创建XML对于除了最琐碎的文档之外的所有文档都是不可启动的。使用XML * 函数可以控制文档的格式。但它可以是fidly写你的查询来做到这一点。
DBMS_XMLGen是最简单的。你只要把它一个查询,它就会把结果作为一个文档给你。每一行都在自己的行标签中:
create table t as
select rownum x, sysdate y from dual connect by level <= 5;
select dbms_xmlgen.getxml('select * from t') from dual;
DBMS_XMLGEN.GETXML('SELECT*FROMT')
-----------------------------------
1
10-JUL-17
2
10-JUL-17
3
10-JUL-17
4
10-JUL-17
5
10-JUL-17
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




