【问题标题】:How to write XML to file (PL/SQL)?如何将 XML 写入文件 (PL/SQL)?
【发布时间】:2018-07-26 16:17:36
【问题描述】:

尽管进行了各种尝试,但我终其一生都无法弄清楚如何将其写入文件。我会提前道歉,我对 XML 和 SQL 过程很陌生。我的代码当前正在正确输出 XML,但我只是在找出如何将其写入文件并使其成为过程时遇到了麻烦。

这是我目前拥有的一个非常精简的版本(关于 XML 和选择):

    PROCEDURE markviewimport_interface 
    (
    p_invoice_id number(10), 
    p_filename nvarchar(30)
    )IS

    v_xmloutput CLOB;
    --v_FILENAME VARCHAR2(100) := concat(r_markviewimport.invoice_id,'-',r_markviewimport.vendor_num,'.XML');

BEGIN
SELECT  
            XMLFOREST(
                XMLCONCAT(
                        XMLELEMENT("CREATEDBY",XMLATTRIBUTES('Exported By' AS "header"), 'Magellan IT'),
                        XMLELEMENT("TIMESTAMP",XMLATTRIBUTES('Date' AS "header"), TO_CHAR(SYSDATE,'MM.DD.YYYY')),
                        XMLFOREST(
                            XMLFOREST(
                                XMLFOREST(
                                    'invoice_id' AS "DBFIELD",
                                    'Invoice ID' AS "CAPTION",
                                    r_markviewimport.invoice_id AS "VALUE"
                                ) AS "DATA_ITEM"
                            ) AS "BASICDATA"
                        )        
                    ) AS "DATA_ROOT"
                ) 
FROM             
( 
SELECT DISTINCT inv.invoice_id FROM apps.ap_invoices_all inv WHERE inv.invoice_id = 4796324

) r_markviewimport

【问题讨论】:

标签: sql xml oracle plsql


【解决方案1】:

1) 配置(以具有CREATE ANY DIRECTORY 权限的用户身份登录)

create or replace directory YOUR_DIR_NAME as '/path/../';
grant read, write on directory YOUR_DIR_NAME to your_schema;

2) 将 xml 转换为 clob 并保存。

declare
  v_xml_clob   clob;
begin
  select xmlserialize(document xmlelement("a", 'lalal') as clob) into v_xml_clob from dual;
  Dbms_xslprocessor.CLOB2FILE(cl => x_xml_clob, flocation => 'YOUR_DIR_NAME', fname => 'somename.xml');
end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-09
    • 2014-07-19
    • 1970-01-01
    • 2016-01-19
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    相关资源
    最近更新 更多