Oracle EBS 弹性域注册客户化表脚本

Oracle EBS 弹性域注册客户化表脚本

涉及到API

AD_DD.REGISTER_TABLE

AD_DD.REGISTER_COLUMN

AD_DD.REGISTER_PRIMARY_KEY

AD_DD.REGISTER_PRIMARY_KEY_COLUMN

DECLARE 

    lc_appl_short_name CONSTANT VARCHAR2(40) DEFAULT 'CUX';

   lc_tab_name       CONSTANT VARCHAR2(32) DEFAULT 'CUX_TEST_CUSTOM_T';

   lc_tab_type       CONSTANT VARCHAR2(50) DEFAULT 'T';

   lc_next_extent    CONSTANT NUMBER DEFAULT 512;

   lc_pct_free       CONSTANT NUMBER DEFAULT 10;

   lc_pct_used       CONSTANT NUMBER DEFAULT 70;

  BEGIN

    -- Start Register Custom Table

    -- Get the table details in cursor

    FOR table_detail IN (SELECT table_name,

                           tablespace_name,

                           pct_free,

                           pct_used,

                           ini_trans,

                           max_trans,

                           initial_extent,

                           next_extent

                       FROM dba_tables

                      WHERE table_name = lc_tab_name

                     )

    LOOP

      -- Call the API to register table

     ad_dd.register_table

        (p_appl_short_name => lc_appl_short_name,

         p_tab_name       => table_detail.table_name,

         p_tab_type       => lc_tab_type,

        p_next_extent    => NVL(table_detail.next_extent,lc_next_extent),

         p_pct_free       => NVL(table_detail.pct_free,lc_pct_free),

         p_pct_used       => NVL(table_detail.pct_used,lc_pct_used)

        );

    END LOOP; -- End Register Custom Table

    -- Start Register Columns

    -- Get the column details of the table in cursor

    FOR table_columns IN (SELECT column_name,

                            column_id,

                            data_type,

                            data_length,

                            nullable

                        FROM all_tab_columns

                       WHERE table_name = lc_tab_name

                      )

    LOOP

      -- Call the API to register column

     ad_dd.register_column

        (p_appl_short_name => lc_appl_short_name,

         p_tab_name       => lc_tab_name,

         p_col_name       => table_columns.column_name,

         p_col_seq       => table_columns.column_id,

         p_col_type       => table_columns.data_type,

         p_col_width      => table_columns.data_length,

         p_nullable       => table_columns.nullable,

         p_translate      => 'N',

         p_precision      => NULL,

         p_scale         => NULL

        );

    END LOOP; -- End Register Columns

    -- Start Register Primary Key

    -- Get the primary key detail of the table in cursor

    FOR all_keys IN (SELECT constraint_name, table_name, constraint_type

                    FROM all_constraints

                   WHERE constraint_type = 'P'

                     AND table_name = lc_tab_name

                 )

    LOOP

      -- Call the API to register primary_key

     ad_dd.register_primary_key

         (p_appl_short_name => lc_appl_short_name,

          p_key_name       => all_keys.constraint_name,

          p_tab_name       => all_keys.table_name,

          p_description    => 'Register primary key',

          p_key_type       => 'S',

          p_audit_flag     => 'N',

          p_enabled_flag    => 'Y'

          );

      -- Start Register Primary Key Column

      -- Get the primary key column detial in cursor

      FOR all_columns IN (SELECT column_name, position

                        FROM dba_cons_columns

                       WHERE table_name = all_keys.table_name

                         AND constraint_name = all_keys.constraint_name

                      )

     LOOP

       -- Call the API to register primary_key_column

       ad_dd.register_primary_key_column

          (p_appl_short_name => lc_appl_short_name,

           p_key_name       => all_keys.constraint_name,

           p_tab_name       => all_keys.table_name,

           p_col_name       => all_columns.column_name,

           p_col_sequence   => all_columns.position

           );

      END LOOP; -- End Register Primary Key Column

    END LOOP; -- End Register Primary Key

    COMMIT;

    DBMS_OUTPUT.PUT_LINE ('SUCCESS');

  EXCEPTION

    WHEN OTHERS THEN

     DBMS_OUTPUT.PUT_LINE (SQLERRM);

  END;

--- 刘轶鹤

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值