3

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

PROCEDURE LISTE_FOURNISSEUR (liste_fournisseurs out SYS_REFCURSOR) 

但是当我调用网络服务时,我得到了这种格式的响应

<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>

但我希望我的结果如下

<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>

当我使用其他输出参数(Varchar2,数字,...)时,问题不会发生有没有办法获得想要的结果

4

1 回答 1

0

我猜你正在使用dbms_xmlgen来生成 XML。因此,如果是这种情况,请使用以下命令更改默认行标签名称:

dbms_xmlgen.setRowTag( ctx, 'FOURNISSEUR' );

其中ctx是您初始化的上下文,如下所示:

ctx := dbms_xmlgen.newcontext( ....
于 2018-11-20T16:55:36.617 回答