动态SQL执行的几种方法

①最简单常用的方法

v_sql := '
    INSERT INTO TB1
    (
        COL1,
        COL2,
        COL3,
        COL4
    )
    SELECT COL1
         , COL2
         , COL3
         , ' || '''' || V_NAME ||'''' || '

        , TO_DATE(''' || TO_CHAR(in_hatsurei_ymd, 'YYYYMMDD') || ''', ''YYYYMMDD'')
    FROM (
      SELECT COL1          
           , COL2          
           , COL3          
      FROM   TB2   -- 個人社員区分歴情報
      ) A
      , TB2
    WHERE  A.COL1      = TB2.COL1
    AND    TB2.COL2    = ' || n_num  || '
    ';
EXECUTE IMMEDIATE v_sql;

DECLEAR

  ANK_YMD  CONSTANT varchar2(8) := '20120401';

BEGIN

 v_update_sql := 'INSERT INTO TB1

                     (COL1,
                      COL2)
                    SELECT 
                      'AA',
                      TO_DATE(:ANK_YMD,''YYYYMMDD'')
                       ; 
  EXECUTE IMMEDIATE v_update_sql USING ANK_YMD;

 

EXECUTE IMMEDIATE
         'BEGIN '
      || ' :1 := PGB_SAMPLE.FCB_FUN'

      || '(:2,:3); '
      || 'END;'
    USING IN OUT on_rtn,
      in_flg1,
      in_flg2;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值