Oracle批量生成拉链表trigger

DECLARE
  V_SQL     CLOB;
  V_SUB_STR VARCHAR2(32767);
  TYPE      T_TABLE_ARRAY IS VARRAY(50) OF VARCHAR(50);  
  TABLES    T_TABLE_ARRAY := T_TABLE_ARRAY(
'table_name'
);  
  V_OWNER   VARCHAR2(30) := ''; --'
  V_TAB_SPACE VARCHAR2(30) := ''; --
  V_ROLE    VARCHAR2(30) := '';  --
  V_SUB_CDC VARCHAR2(30) := '_CDC';
  V_GR_FLT  VARCHAR2(1000):= 
' WHERE not exists (select ''AA'' from '||V_OWNER||'.COMPASS_FLT_MEMBER flt where flt.ClientCode=his.CLNTCODE)
   and not exists (select ''AA'' from '||V_OWNER||'.COMPASS_FLT_MEMBER flt where flt.PolicyNo=his.POLNO);
';

BEGIN
FOR I IN 1 .. TABLES.COUNT LOOP
  WITH COL_LIST AS
    (select COLUMN_NAME,COLUMN_ID
       from ALL_TAB_COLUMNS
      where table_name = TABLES(I)
        and owner=V_OWNER)
  select 
        'Create Table '||V_OWNER||'.'||TABLES(I)||V_SUB_CDC||' tablespace '||V_TAB_SPACE||' as ( select p.*, ''I'' cdc_action, systimestamp cdc_action_time from '||V_OWNER||'.'||TABLES(I)||' p ) ;'||CHR(10) ||
        'Grant select on '||V_OWNER||'.'||TABLES(I
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值