【oracle】oracle 存储过程执行时有时报错:Procedure execution failed Error - OCI_NO_DATA

使用navicate写oracle的存储过程,运行时有时会报错Error - OCI_NO_DATA,但有时又是正常的,找不到原因,于是将存储过程拆分成一部分一部分的运行,还是存在一样的问题。百度了一下,出现这个问题,是因为select into 语句没有查询到数据。可以用异常处理来解决这个问题。

有时正常,有时报错的代码,如下图:(图中,红色框中的代码便是引起报错的语句)
在这里插入图片描述
加上异常捕获后即可:

	tm:='';
	BEGIN
		select barcode into tm from scan_tm 
		where czid=czid and CPPH=cpcode
		group by barcode having COUNT(*)>1;
	EXCEPTION
	 WHEN NO_DATA_FOUND THEN
	 dbms_output.put_line('没有重复条码'); 
	END;

备注: 只有当一条数据都没有查询出来时,才会捕获这个NO_DATA_FOUND的异常。

参考文档: https://www.2cto.com/database/201806/754951.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值