Oracle 存储过程中的临时表数据自动清空

时间:2023-03-10 06:56:09
Oracle 存储过程中的临时表数据自动清空

问题叙述:

用 EXECUTE IMMEDIATE 动态往临时表插入数据,跟踪发现插入临时表后数据会立马清空,按理说等存储过程执行完才会清空临时表才对,现在是执行插入语句后下一步验证就发现临时表就没有数据了,不知道什么原因,以前系统用着都是好的,这两天突然就不行,请大神指导。

下面是存储过程代码:
v_sqlstr := v_sqlstr || v_condtion;
    
      EXECUTE IMMEDIATE 'insert into wms_temp_meter_assign( meterid,barcode,boxcode,metertype,bincode,bline,brank,blayer,pilercode,isassign) ' ||   v_sqlstr;
      v_count := SQL%ROWCOUNT;
    
      v_billcode := pack_wms_utility.fu_wms_getbillcode('wms_wm_deliverybillmas',
                                                        v_wh_sort_code);
      --判断是否按品规条件找到表计
      SELECT COUNT(meterid)
      INTO   v_count
      FROM   wms_temp_meter_assign;
      IF (v_count = 0) THEN
        SELECT COUNT(DISTINCT b.pilercode)
        INTO   v_count
        FROM   wms_pub_bin b
        WHERE  b.state = '0';
        IF (v_count > 0) THEN
          v_errormsg := '堆垛机故障出库任务号:' || taskcur.io_task_no;
        ELSE
          v_errormsg := '按平台给的品规条件未能找到满足条件的出库表计信息,请检查平台给予条件后一会再试!出库任务号:' ||
                        taskcur.io_task_no;
        
        END IF;
        RAISE v_exception;
        EXIT;