Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将sql查询结果导出到oracle中的xml数据文件_Sql_Xml_Oracle - Fatal编程技术网

将sql查询结果导出到oracle中的xml数据文件

将sql查询结果导出到oracle中的xml数据文件,sql,xml,oracle,Sql,Xml,Oracle,我有一个SQL查询,它返回两列数据,如下所示: State Name ------- --------- Online Terminal1 Offline Terminal2 Online Terminal3 Online Terminal4 现在我想创建一个运行SQL查询的XML文件。XML文件结构必须如下所示: <?xml version="1.0" encoding="utf-8" ?> <Terminallist name="xml data">

我有一个SQL查询,它返回两列数据,如下所示:

State   Name  
------- ---------
Online  Terminal1
Offline Terminal2
Online  Terminal3
Online  Terminal4
现在我想创建一个运行SQL查询的XML文件。XML文件结构必须如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<Terminallist name="xml data">
   <Value id="0">
      <Terminal>Terminal1</Terminal>
      <State>Online</State>
   </Value>
   <Value id="1">
      <Terminal>Terminal2</Terminal>
      <State>Offline</State>
   </Value>
   <Value id="2">
      <Terminal>Terminal3</Terminal>
      <State>Online</State>
   </Value>
   <Value id="3">
      <Terminal>Terminal4</Terminal>
      <State>Online</State>
   </Value>
</Terminallist>

终端1
在线 的
终端2
离线
终点站3
在线 的
终端4
在线 的
我想将XML文件保存到如下目录中
c:/file.XML

回答:-

表名:诱惑

表中的数据:

查询:-

    SELECT XMLElement("Terminallist ", XMLAttributes('xml data' AS "name"),XMLAgg(XMLElement("value ", XMLAttributes(rownum AS "id"),XMLForest(Terminal,state))))
FROM temptable ;
输出:-

<Terminallist name = "xml data">
  <value id = "1">
    <TERMINAL>Terminal2</TERMINAL>
    <STATE>Offline</STATE>
  </value>
  <value id = "2">
    <TERMINAL>Terminal3</TERMINAL>
    <STATE>Online</STATE>
  </value>
  <value id = "3">
    <TERMINAL>Terminal4</TERMINAL>
    <STATE>Online</STATE>
  </value>
</Terminallist>

终端2
离线
终点站3
在线 的
终端4
在线 的
谢谢 纳伦达尔回答:-

表名:诱惑

表中的数据:

查询:-

    SELECT XMLElement("Terminallist ", XMLAttributes('xml data' AS "name"),XMLAgg(XMLElement("value ", XMLAttributes(rownum AS "id"),XMLForest(Terminal,state))))
FROM temptable ;
输出:-

<Terminallist name = "xml data">
  <value id = "1">
    <TERMINAL>Terminal2</TERMINAL>
    <STATE>Offline</STATE>
  </value>
  <value id = "2">
    <TERMINAL>Terminal3</TERMINAL>
    <STATE>Online</STATE>
  </value>
  <value id = "3">
    <TERMINAL>Terminal4</TERMINAL>
    <STATE>Online</STATE>
  </value>
</Terminallist>

终端2
离线
终点站3
在线 的
终端4
在线 的
谢谢
Narendar

此解决方案使用WITH子句从0开始生成所需的ID。使用解析的
行数()
函数可在结果集中提供有保证的排序顺序

注意:
XMLRoot()
作为XML/SQL标准的一部分不推荐使用,但会生成您要求的版本头

以下是输出:

<?xml version="1.0"?>
<Terminallist name="xml data">
  <Value id="0">
    <Terminal>Terminal1</Terminal>
    <State>Online</State>
  </Value>
  <Value id="1">
    <Terminal>Terminal2</Terminal>
    <State>Offline</State>
  </Value>
  <Value id="2">
    <Terminal>Terminal3</Terminal>
    <State>Online</State>
  </Value>
  <Value id="3">
    <Terminal>Terminal4</Terminal>
    <State>Online</State>
  </Value>
</Terminallist>

终端1
在线 的
终端2
离线
终点站3
在线 的
终端4
在线 的

至于将输出写入文件,这取决于您希望如何调用SQL。如果从SQL*Plus运行SPOOL并希望将其保存到本地文件,请使用SPOOL。如果从PL/SQL运行,则需要使用UTL_文件并写入数据库服务器上的目录。

此解决方案使用WITH子句从0开始生成所需的ID。使用解析的
行数()
函数可在结果集中提供有保证的排序顺序

注意:
XMLRoot()
作为XML/SQL标准的一部分不推荐使用,但会生成您要求的版本头

以下是输出:

<?xml version="1.0"?>
<Terminallist name="xml data">
  <Value id="0">
    <Terminal>Terminal1</Terminal>
    <State>Online</State>
  </Value>
  <Value id="1">
    <Terminal>Terminal2</Terminal>
    <State>Offline</State>
  </Value>
  <Value id="2">
    <Terminal>Terminal3</Terminal>
    <State>Online</State>
  </Value>
  <Value id="3">
    <Terminal>Terminal4</Terminal>
    <State>Online</State>
  </Value>
</Terminallist>

终端1
在线 的
终端2
离线
终点站3
在线 的
终端4
在线 的

至于将输出写入文件,这取决于您希望如何调用SQL。如果从SQL*Plus运行SPOOL并希望将其保存到本地文件,请使用SPOOL。如果从PL/SQL运行,则需要使用UTL_文件并写入数据库服务器上的目录。

为此,您可以编写自己的软件程序,执行SQL查询并根据需要保存结果,或者你可以下载一些软件来为你做这件事。使用xmlgen包生成所需格式的xml字符串,并使用utl文件包将该字符串写入文件。为此,你可以编写自己的软件程序来执行SQL查询,并根据需要保存结果,或者你可以下载一些软件来为你做这件事。使用xmlgen包生成所需格式的xml字符串,并使用utl文件包将该字符串写入文件