oracle存储过程for in loop外层不支持动态传参

create or replace procedure message_record(p_type in varchar2) as
  /*
    功能:生成待发短信消息记录
  */
  l_msg_exist_count VARCHAR2(500);
  l_msg             VARCHAR2(500);
  l_count           INTEGER := 0;
  l_notice_type     varchar2(50);
Begin
  l_notice_type:=notice_type;

  FOR idx2 IN (select * from t_config_demo t where t.type=p_type) loop  --此处不支持动态传参修改为常量(FOR idx2 IN (select * from t_config_demo t where t.type='1') loop):
 
      FOR idx3 IN (select * from t_emplayee_demo t2 where t2.user_id=t.user_id) loop
        --业务处理

        END IF;
      END Loop;
 
  END Loop;

  -- 记录日志
 
  commit;

EXCEPTION
  WHEN OTHERS THEN
    l_msg := sqlerrm;
    rollback;
    -- 记录错误日志
 
    commit;
end message_record;

猜你喜欢

转载自www.cnblogs.com/shanyingyuyan/p/11349950.html