首页 > 解决方案 > 是否有 Oracle PL/SQL 命令可以根据脚本中的查询自动创建 .csv 或 .xml 文件?

问题描述

我一直在处理不断重复的 SQL 提取,我想开发一个脚本,在 Excel(或 csv)中自动下载几个搜索,这将取决于带有参数的“while”语句。

通常我会运行我的 SQL 查询并使用 Toad 的选项手动下载它,但我想让这个过程不那么依赖我。

它会是这样的:

DECLARE
     {parameters definition};
BEGIN
     FOR T IN ({table with parameters})
          LOOP
               {Run a query that gets extracted to a .csv file upon completion}
               SELECT * FROM {table} WHERE T.{parameters};

          END LOOP;

END;
/

我希望脚本多次运行查询(因为循环)并在每次运行后从每个下载文件。

你知道它是否可行以及如何实现?

标签: sqloracleplsql

解决方案


您可以在查询中使用“ xmlelement ”。它可以帮助您将数据视为 XML 输出。实际上,这种方式不会创建任何 .xml 文件,而是返回 XML 格式。之后,您可以将其导出。

这是一个例子;

select xmlelement("Item"
                  ,xmlelement("action_type"
                             ,'I')
                  ,xmlelement("dc_id"
                             ,cmn.doc_id)
                  ,xmlelement("owner"
                             ,cmn.owner)
                  ,xmlelement("name"
                             ,cmn.name)) 
from members cmn

希望能帮助到你。


推荐阅读