oracle 类似数组的type

首先要定义type类型   

 TYPE partyExtTable IS RECORD(
        ptype  NUMBER(5),
        pVALUE VARCHAR2(40));

    TYPE partyBaseInfo IS RECORD(
        PARTY_id   VARCHAR(12),
        party_name VARCHAR2(200),
        party_addr VARCHAR2(250),
        mail_addr  VARCHAR2(250));

其次要声明type

    TYPE partyExtTableArray IS TABLE OF partyExtTable;

 

 

PROCEDURE parsexml(inxml        IN VARCHAR2,
                       partyExtList OUT partyExtTableArray) IS
        l_parser  xmlparser.Parser;
        l_doc     xmldom.DOMDocument;
        tempNode  xmldom.DOMNode;
        InfoNode  xmldom.DOMNodeList;
        chilNodes xmldom.DOMNodeList;
        len       NUMBER(4);
        v_type    VARCHAR2(10);
        v_value   VARCHAR2(50);
    BEGIN
        l_parser := xmlparser.newParser;
        xmlparser.parseClob(l_parser, inxml);
        l_doc := xmlparser.getDocument(l_parser);
        xmlparser.freeParser(l_parser);
        InfoNode     := xmldom.getElementsByTagName(l_doc, 'partyExt');
        len          := xmldom.getLength(InfoNode);

      /*引用type*/
        partyExtList := partyExtTableArray();
        FOR i IN 1 .. len LOOP
            partyExtList.extend;  --这个很重要
            tempNode := xmldom.item(InfoNode, (i - 1)); --获取第i+1个partyExt节点
            chilNodes := xmldom.getChildNodes(tempNode);
            v_type :=  getNodeValue(xmldom.getFirstChild(xmldom.item(chilNodes,0)));
            v_value := getNodeValue(xmldom.getFirstChild(xmldom.item(chilNodes, 1)));
         /*赋值*/

            partyExtList(I).ptype := v_type;
            partyExtList(I).pvalue := v_value;
            dbms_output.put_line(v_type || '   '||v_value);
        END LOOP;
        xmldom.freeDocument(l_doc);
   
    EXCEPTION
        WHEN OTHERS THEN
            partyExtList := NULL;
    END;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值