【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

发布了23 篇原创文章 · 获赞 2 · 访问量 4242

猜你喜欢

转载自blog.csdn.net/weixin_45616483/article/details/103099260