Oracle 在函数或存储过程中执行sql查询字符串并将结果值赋值给变量

请看黄色部分

   IF CUR_MONTH_BILL_ID > 0                                             --区县指标
   THEN
      TVALUE_SQL :=
            'SELECT TO_CHAR('
         || CUR_ROW.MAIN_FIELD
         || ') FROM '
         || CUR_ROW.END_TABLE
         || '_'
         || CUR_MONTH
         || ' WHERE TO_CHAR(DISTRICT_ID)='''
         || CUR_ROW.E_DISTRICT_ID
         || '''';
   ELSE                                                               --客户经理指标
      TVALUE_SQL :=
            'SELECT TO_CHAR('
         || CUR_ROW.MAIN_FIELD
         || ') FROM '
         || CUR_ROW.END_TABLE
         || '_'
         || CUR_MONTH
         || ' WHERE MANAGER_NO='''
         || CUR_ROW.MANAGER_NO
         || '''';
   END IF;

   BEGIN
      EXECUTE IMMEDIATE TVALUE_SQL INTO KPI_VALUE;      --执行sql,得到完成值kpi_value
   EXCEPTION
      WHEN OTHERS
      THEN
         RESULT_STR :=
               RESULT_STR
            || '<br/> sql执行错误:'
            || TVALUE_SQL
            || ' INTO KPI_VALUE';
   END;

完整文章参考:Oracle 在存储过程或函数中执行字符串sql

转载于:https://www.cnblogs.com/senyier/p/7801402.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值