Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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
将refcursor用作参数类型时的SOA网关xml输出_Xml_Plsql_Oracleapplications - Fatal编程技术网

将refcursor用作参数类型时的SOA网关xml输出

将refcursor用作参数类型时的SOA网关xml输出,xml,plsql,oracleapplications,Xml,Plsql,Oracleapplications,我正在尝试在我的Oracle应用程序中使用webservice。在Pl/SQL过程中,我有一个refcursor类型的out参数 PROCEDURE LISTE_FOURNISSEUR (liste_fournisseurs out SYS_REFCURSOR) 但是当我调用webservice时,我得到的响应是这种格式的 <LISTE_FOURNISSEURS> <Row> <Column name="CODE_FOURNISSEUR"

我正在尝试在我的Oracle应用程序中使用webservice。在Pl/SQL过程中,我有一个refcursor类型的out参数

PROCEDURE LISTE_FOURNISSEUR (liste_fournisseurs out SYS_REFCURSOR) 
但是当我调用webservice时,我得到的响应是这种格式的

<LISTE_FOURNISSEURS>
    <Row>
        <Column name="CODE_FOURNISSEUR" sqltype="VARCHAR2">1</Column>
        <Column name="VENDOR_NAME" sqltype="VARCHAR2">IAM</Column>
        <Column name="ICE" sqltype="VARCHAR2">1</Column>
        <Column name="NIF" sqltype="VARCHAR2">1</Column>
        <Column name="RC" sqltype="VARCHAR2">1</Column>
        <Column name="ADDRESS_LINE1" sqltype="VARCHAR2">Casa</Column>
        <Column name="CODE_PORT" sqltype="NUMBER">101</Column>
        <Column name="BANK_ACCOUNT_NUM" sqltype="VARCHAR2"></Column>
    </Row>
    <Row>
        <Column name="CODE_FOURNISSEUR" sqltype="VARCHAR2">1</Column>
        <Column name="VENDOR_NAME" sqltype="VARCHAR2">IAM</Column>
        <Column name="ICE" sqltype="VARCHAR2">1</Column>
        <Column name="NIF" sqltype="VARCHAR2">1</Column>
        <Column name="RC" sqltype="VARCHAR2">1</Column>
        <Column name="ADDRESS_LINE1" sqltype="VARCHAR2">Casa</Column>
        <Column name="CODE_PORT" sqltype="NUMBER">141</Column>
        <Column name="BANK_ACCOUNT_NUM" sqltype="VARCHAR2"></Column>
    </Row>    
</LISTE_FOURNISSEURS>

1.
国际机械师协会
1.
1.
1.
家
101
1.
国际机械师协会
1.
1.
1.
家
141
但我希望我的结果如下

<LISTE_FOURNISSEURS>
    <FOURNISSEUR>
        <CODE_FOURNISSEUR>1</CODE_FOURNISSEUR>
        <VENDOR_NAME>IAM</VENDOR_NAME>
        <ICE>1</ICE>
        <NIF>1</NIF>
        <RC>1</RC>
        <CADDRESS_LINE1>Casa</CADDRESS_LINE1>
        <CODE_PORT>101</CODE_PORT>
        <BANK_ACCOUNT_NUM></BANK_ACCOUNT_NUM>
    </FOURNISSEUR>
</LISTE_FOURNISSEURS>

1.
国际机械师协会
1.
1.
1.
家
101
当我使用其他输出参数(Varchar2,number,…)时,问题不会发生
有什么方法可以得到想要的结果吗?我猜您正在使用dbms\u xmlgen生成XML。 因此,如果是这种情况,请使用以下命令更改默认行标记名:

dbms_xmlgen.setRowTag( ctx, 'FOURNISSEUR' );
其中,ctx是您的上下文初始化,如下所示:

ctx := dbms_xmlgen.newcontext( ....