sql and exception


DECLARE
  vinput  VARCHAR2(200);
  voutput VARCHAR2(4000);
BEGIN
  vinput := '1111073124253975';
  FOR x IN (WITH tab1 AS
               (SELECT vinput str FROM dual)
              SELECT regexp_substr(str || ',', '[^,]+', 1, LEVEL) AS c2
                FROM tab1 t
              CONNECT BY LEVEL <=
                         length(regexp_replace(str, '[^,]', NULL)) + 1) LOOP
    dbms_output.put_line('userid:' || x.c2);
    BEGIN
      --tf_f_user
      vtable := 'tf_f_user';
    
      SELECT 'insert into tf_f_user values ' || '(' || user_id || ',' ||
             dummy_tag || ',' || net_type_code || ',' || serial_number || ',' ||
             chr(10) || eparchy_code || ',' || city_code || ',' || cust_id || ',' ||
             usecust_id || ',' || brand_code || ',' || product_id || ',' ||
             chr(10) || user_type_code || ',' || prepay_tag || ',' ||
             service_state_code || ',' || open_mode || ',' || acct_tag || ',' ||
             remove_tag || ',' || to_char(in_date, 'yyyymmddhh24miss') || ',' ||
             chr(10) || to_char(open_date, 'yyyymmddhh24miss') || ',' ||
             to_char(pre_destroy_date, 'yyyymmddhh24miss') || ',' ||
             to_char(destroy_date, 'yyyymmddhh24miss') || ',' || chr(10) ||
             first_call_date || ',' ||
             to_char(last_stop_date, 'yyyymmddhh24miss') || ',' ||
             credit_class || ',' || base_credit_value || ',' ||
             credit_value || ',' || chr(10) || credit_control_id || ',' ||
             changeuser_date || ',' || score_value || ',' ||
             to_char(update_time, 'yyyymmddhh24miss') || ');'
        INTO voutput
        FROM ucr_act1.tf_f_user t
       WHERE t.user_id = x.c2
         AND t.remove_tag = ('0');
      dbms_output.put_line(voutput);
    EXCEPTION
      WHEN no_data_found THEN
        dbms_output.put_line('no ' || vtable || '!');
    END;
    BEGIN
      --tf_f_feepolicy
      vtable := 'tf_f_feepolicy';
    
      SELECT 'insert into tf_f_feepolicy values ' || '(' ||
             feepolicy_ins_id || ',' || id_type || ',' || id || ',' ||
             feepolicy_id || ',' || spec_tag || ',' || rela_user_id || ',' ||
             product_id || ',' || serv_bund_id || ',' || nvl(serv_id, 0) || ',' ||
             nvl(feepolicy_bund_id, 0) || ',' ||
             to_char(start_date, 'yyyymmddhh24miss') || ',' ||
             to_char(end_date, 'yyyymmddhh24miss') || ');'
        INTO voutput
        FROM ucr_act1.tf_f_feepolicy t
       WHERE t.id = x.c2
         AND t.start_date <= SYSDATE
         AND t.end_date >= SYSDATE;
      dbms_output.put_line(voutput);
    EXCEPTION
      WHEN no_data_found THEN
        dbms_output.put_line('no ' || vtable || '!');
    END;
    BEGIN
      --tf_f_user_importinfo
      vtable := 'tf_f_user_importinfo';
      SELECT 'insert into tf_f_user_importinfo values ' || '(' || user_id || ',' ||
             net_type_code || ',' || product_id || ',' || brand_code || ',' ||
             logic_phone || ',' || phyical_phone || ',' ||
             to_char(start_date, 'yyyymmddhh24miss') || ',' ||
             to_char(end_date, 'yyyymmddhh24miss') || ');'
        INTO voutput
        FROM ucr_act1.tf_f_user_importinfo t
       WHERE t.user_id = x.c2
         AND t.start_date <= SYSDATE
         AND t.end_date >= SYSDATE;
      dbms_output.put_line(voutput);
    EXCEPTION
      WHEN no_data_found THEN
        dbms_output.put_line('no ' || vtable || '!');
    END;
    BEGIN
      --tf_f_user_member
      vtable := 'tf_f_user_member';
      SELECT 'insert into tf_f_user_member values ' || '(' || user_id || ',' ||
             member_role_code || ',' || member_role_type || ',' ||
             member_role_id || ',' || member_role_number || ',' ||
             discnt_priority || ',' ||
             to_char(start_date, 'yyyymmddhh24miss') || ',' ||
             to_char(end_date, 'yyyymmddhh24miss') || ');'
        INTO voutput
        FROM ucr_act1.tf_f_user_member t
       WHERE t.user_id = x.c2
         AND t.start_date <= SYSDATE
         AND t.end_date >= SYSDATE;
      dbms_output.put_line(voutput);
    
    EXCEPTION
      WHEN no_data_found THEN
        dbms_output.put_line('no ' || vtable || '!');
    END;  
  END LOOP;
END;
--
--SELECT * FROM ucr_act1.tf_f_user_importinfo t WHERE t.user_id = ('1111073124253975');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值