entity

    技术2022-05-19  19

    -- table name, owner, synony, del_flg, entity_cre_flg-- del_entity_cre_flg-- entity_infy

    DROP TYPE ENTITY_INFY_TYPE_TABLE/

    DROP TYPE ENTITY_INFY_TYPE/

    CREATE OR REPLACE TYPE ENTITY_INFY_TYPE AS OBJECT(       TABLE_NAME VARCHAR2(60),       OWNER      VARCHAR2(20),       SYNONY     VARCHAR2(60),       DEL_FLG    CHAR(1),       ENTITY_CRE_FLG CHAR(1))/

    CREATE OR REPLACE TYPE ENTITY_INFY_TYPE_TABLE AS TABLE OF ENTITY_INFY_TYPE/

    CREATE OR REPLACE FUNCTION entity_infy_funcRETURN ENTITY_INFY_TYPE_TABLEPIPELINED AS

        CURSOR ENTITY_INFY_CUR IS        SELECT DISTINCT allsyno.table_name,allsyno.table_owner, allsyno.synonym_name

            FROM    ALL_TAB_COLS atc,                 all_synonyms allsyno

            WHERE   atc.table_name = allsyno.table_name        AND     atc.owner = allsyno.table_owner        AND     atc.column_name IN ('DEL_FLG','ENTITY_CRE_FLG');

        v_delFlg CHAR(1);    v_entityCreFlg CHAR(1);

    BEGIN

        FOR v_record IN entity_infy_cur LOOP        dbms_output.put_line('0');        BEGIN             SELECT 'Y'             INTO v_delFlg             FROM all_tab_cols             WHERE table_name = v_record.table_name             AND   column_name = 'DEL_FLG'             AND   ROWNUM<2;

            EXCEPTION        WHEN no_data_Found THEN             v_delFlg := 'N';        END;

            dbms_output.put_line('1');                BEGIN             SELECT 'Y'             INTO v_entityCreFlg             FROM all_tab_cols             WHERE table_name = v_record.table_name             AND   column_name = 'ENTITY_CRE_FLG'             AND   ROWNUM<2;                      EXCEPTION        WHEN no_data_Found THEN             v_entityCreFlg := 'N';        END;        dbms_output.put_line('2');        PIPE ROW(             ENTITY_INFY_TYPE(             v_record.table_name,             v_record.table_owner,             v_record.synonym_name,             v_delFlg,             v_entityCreFlg             )        );            END LOOP;

    END entity_infy_func;/-- select * from table(entity_infy_func) where rownum<6s;

     

    --  前5条结果

    TABLE_NAME                              OWNER               SYNONY                               DEL_FLG   ENTITY_CRE_FLGFPICENTITYDETAILS                   FDMADMIN             ENTTAB                                     Y                  NCTL_PASSBOOK_DETAILS          DBSCUST               CTLPBDT                                   Y                   YLA_ROLL_OVER_MASTER_TBL   TBAADM                  LA_ROM                                   Y                   YLA_SCHM_PARM_TABLE            TBAADM                 TBA_LA_SCHM_PARM_TBL        Y                   N

    LA_TOPUP_DETAILS_TABLE       TBAADM                 TBA_LA_TOPUP_DETAILS_TBL   N                   Y

     

     

    前5条结果如del_flg 和 entity_cre_flg 标识正确!

     

     

    --SELECT * FROM tbaadm.TBA_LA_TOPUP_DETAILS_TBL WHERE ROWNUM<2

    -- TBA_LETTER_TBL

    --SELECT * FROM tbaadm.TBA_LETTER_TBL WHERE ROWNUM<2


    最新回复(0)