批量引用光标到嵌套表中,显示错误

时间:2016-06-24 18:32:23

标签: oracle plsql cursor bulkinsert

  1. 我创建了一个嵌套表

  2. 我想将游标光标(C_get_cards)批量放入已创建的嵌套表中。

  3. 我想将嵌套表用作表STAT_QUERIES中的一列。

  4. 如何在一个程序中组合所有这三个步骤?如果我的方法有误,请纠正我。

    --Nested Table---
        CREATE OR REPLACE TYPE T_card_details AS TABLE OF VARCHAR2(20)  -- define type
        /
        CREATE TYPE Query AS OBJECT (  -- create object
           CARD_QUERY T_card_details)  -- declare nested table as attribute
        /
        CREATE TABLE STAT_QUERIES (
        OBJECTTYPE     VARCHAR2(50),
        CATEGORY       VARCHAR2(100),
        CARD_QUERY     T_card_details)
        NESTED TABLE CARD_QUERY STORE AS CARD_QUERY_TAB;     
        select * FROM STAT_QUERIES
    
        -- The cursor bulk collect into T_CARD details
        CREATE OR REPLACE PROCEDURE NRMSP_INVENTORYSTATS IS
        CURSOR C_get_cards
          IS
            SELECT 
             nt.name     nt_name
            ,nd.name     nd_name
            ,ct.name     ct_name
            ,ps.name     ps_name
            ,count(c.cardid) 
            FROM cardtype ct, card c, node n, nodetype nt, nodedef nd, provisionstatus ps
            WHERE ct.name in ('SRA AMP', 'XLA AMP', 'SAM', 'ESAM')
            AND ct.cardtypeid = c.card2cardtype
            AND c.card2node = n.nodeid
            AND n.node2nodetype = nt.nodetypeid
            AND n.node2nodedef = nd.nodedefid
            AND c.card2provisionstatus = ps.provisionstatusid
            GROUP by nt.name, nd.name, ct.name, ps.name
          ;
            TYPE cards_TAB_TYPE IS TABLE OF C_get_cards%ROWTYPE INDEX BY BINARY_INTEGER ;
            T_card_details              cards_TAB_TYPE ;
        BEGIN
          OPEN C_get_cards ;
            FETCH C_get_cards
              BULK COLLECT INTO T_card_details
              LIMIT 250 
            ;
    
        END;
        /
        ---INSERT INTO STAT_QUERIES---
    
        INSERT INTO STAT_QUERIES
        VALUES('CARD', 'Cards from Other Projects 2014', 'CARD_QUERY');
    

0 个答案:

没有答案