需要从生成的xml Oracle中删除行集和行标记
我在Oracle中运行sql查询需要从生成的xml Oracle中删除行集和行标记,xml,oracle,Xml,Oracle,我在Oracle中运行sql查询 select dbms_xmlgen.getxml( 'SELECT TO_CHAR (SYSDATE, ''mm/dd/yyyy'') CURRENT_DATE,NAME,VERSION, (SELECT VALUE FROM v$parameter WHERE NAME = ''compatible'') compatible, (SELECT VALUE FROM
select dbms_xmlgen.getxml( 'SELECT TO_CHAR (SYSDATE, ''mm/dd/yyyy'') CURRENT_DATE,NAME,VERSION, (SELECT VALUE
FROM v$parameter
WHERE NAME = ''compatible'') compatible,
(SELECT VALUE
FROM v$parameter
WHERE NAME = ''optimizer_mode'') optimizer_mode,
log_mode, open_mode, logins AS logon_status,
(TO_CHAR (created, ''mm/dd/yyyy hh24:mi'')) created
FROM v$database, v$instance') from dual;
它为我提供了bwloe输出xml:
<?xml version="1.0"?>
<ROWSET>
<ROW>
<CURRENT_DATE>12/10/2019</CURRENT_DATE>
<NAME>PROD2</NAME>
<VERSION>19.0.0.0.0</VERSION>
<COMPATIBLE>19.0.0</COMPATIBLE>
<OPTIMIZER_MODE>ALL_ROWS</OPTIMIZER_MODE>
<LOG_MODE>ARCHIVELOG</LOG_MODE>
<OPEN_MODE>READ WRITE</OPEN_MODE>
<LOGON_STATUS>ALLOWED</LOGON_STATUS>
<CREATED>11/07/2019 13:10</CREATED>
</ROW>
</ROWSET>
错误:
第1行错误:
ORA-19202:XML处理中发生错误
ORA-00933:SQL命令未正确结束
ORA-06512:“SYS.DBMS_XMLGEN”,第7行
ORA-06512:“系统数据库管理系统”第147行
ORA-06512:在第15行
实际上,我对Oracle DB查询还不熟悉。有人能帮我找到正确的查询吗?问题是,第二个块中的查询在语法上不正确:
FROM v$database, v$instance from dual');
如果从dual中省略,它似乎工作正常。测试日期:
DECLARE
ctx DBMS_XMLGEN.ctxHandle;
xml CLOB;
BEGIN
ctx := dbms_xmlgen.newcontext( 'SELECT TO_CHAR (SYSDATE, ''mm/dd/yyyy'') CURRENT_DATE,NAME,VERSION, (SELECT VALUE
FROM v$parameter
WHERE NAME = ''compatible'') compatible,
(SELECT VALUE
FROM v$parameter
WHERE NAME = ''optimizer_mode'') optimizer_mode,
log_mode, open_mode, logins AS logon_status,
(TO_CHAR (created, ''mm/dd/yyyy hh24:mi'')) created
FROM v$database, v$instance');
dbms_xmlgen.setrowsettag(ctx, 'NUMBERS');
dbms_xmlgen.setrowtag(ctx, '');
xml := dbms_xmlgen.getxml(ctx);
dbms_output.put_line(xml);
END;
结果:
<?xml version="1.0"?>
<NUMBERS>
<CURRENT_DATE>12/10/2019</CURRENT_DATE>
<NAME>XXX</NAME>
<VERSION>12.2.0.1.0</VERSION>
<COMPATIBLE>12.2.0</COMPATIBLE>
<OPTIMIZER_MODE>ALL_ROWS</OPTIMIZER_MODE>
<LOG_MODE>NOARCHIVELOG</LOG_MODE>
<OPEN_MODE>READ WRITE</OPEN_MODE>
<LOGON_STATUS>ALLOWED</LOGON_STATUS>
<CREATED>01/01/2000 00:00</CREATED>
</NUMBERS>
12/10/2019
XXX
12.2.0.1.0
12.2.0
所有行
诺阿尔切维洛格
读写
允许
01/01/2000 00:00
希望这有帮助
<?xml version="1.0"?>
<NUMBERS>
<CURRENT_DATE>12/10/2019</CURRENT_DATE>
<NAME>XXX</NAME>
<VERSION>12.2.0.1.0</VERSION>
<COMPATIBLE>12.2.0</COMPATIBLE>
<OPTIMIZER_MODE>ALL_ROWS</OPTIMIZER_MODE>
<LOG_MODE>NOARCHIVELOG</LOG_MODE>
<OPEN_MODE>READ WRITE</OPEN_MODE>
<LOGON_STATUS>ALLOWED</LOGON_STATUS>
<CREATED>01/01/2000 00:00</CREATED>
</NUMBERS>