oracle临时表删除字段,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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle存储过程,你可以使用临时表来存储临时数据临时表是在话级别创建的,仅在当前可见,并在话结束后自动删除。以下是使用临时表的一般步骤: 1. 创建临时表:使用CREATE GLOBAL TEMPORARY TABLE语句创建临时表临时表可以是全局临时表(GLOBAL TEMPORARY TABLE)或本地临时表(LOCAL TEMPORARY TABLE)。全局临时表在所有话之间共享结构定义,但数据仅在当前可见。本地临时表话级别创建和使用,并且只在当前可见。 2. 定义临时表结构:在CREATE TABLE语句定义临时表的列和其他约束。 3. 在存储过程使用临时表:在存储过程,你可以像使用任何其他表一样使用临时表。你可以插入、更新、删除、查询临时表数据,并在存储过程执行期间将其作为间结果使用。 4. 清空删除临时表:当你需要清空删除临时表数据时,可以使用TRUNCATE TABLE或DELETE语句。TRUNCATE TABLE语句快速删除表中的所有数据,而保留表结构。DELETE语句可以根据条件删除表中数据。 5. 存储过程结束后临时表自动删除:一旦存储过程执行完毕或话结束,临时表自动删除,无需手动清理。 使用临时表可以在存储过程方便地存储和处理临时数据,提高性能和简化逻辑。注意,临时表数据仅在当前可见,不对其他话产生影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值