+ -
当前位置:首页 → 问答吧 → PLSQL 隐式游标问题

PLSQL 隐式游标问题

时间:2011-09-09

来源:互联网

SELECT * INTO ownercnclrentadjEntity FROM OWNERCNCLRENTADJ
WHERE COMPANYID=iCompanyId
AND OWNERCONTRACTNO=iOwnerContractNo
AND SLIPAPPROVALCLASS='2'
AND DELETECLASS='0'
ORDER BY OWNERCNCLADJBRANCHNO DESC; --这句sql如果没有查询到数据就会抛异常,执行不下去了,如何解决  
  IF SQL%NOTFOUND THEN
  oEndStatus:=Log_Util.BATCHENDSTATUS_ERROR_ABORT;
  mLogger.WRITE_LOG('COMPANYID:'|| iCompanyId || 'OWNERCONTRACTNO:' || iOwnerContractNo,
  'EBLS0001',
  iOwnerContractNo,
  oEndStatus);
  RAISE ownercnclrentadjNotFound;
  ELSE
  wOwnerCancellationDate:=ownercnclrentadjEntity.CANCELLATIONDATE;
  END IF;

作者: wangboforce   发布时间: 2011-09-09

可以捕获异常

作者: lnuwhy   发布时间: 2011-09-09

引用 1 楼 lnuwhy 的回复:
可以捕获异常
捕获了然后呢?我有些地方没查询到数据是不会报异常的

作者: wangboforce   发布时间: 2011-09-09

引用 2 楼 wangboforce 的回复:
引用 1 楼 lnuwhy 的回复:
可以捕获异常
捕获了然后呢?我有些地方没查询到数据是不会报异常的

捕获了不是就可以正常运行了吗?我的意思不是你捕获 RAISE ownercnclrentadjNotFound;
这句抛出的异常,而是select into语句的时候如没有返回行会抛出no_data_found异常,抛出异常之后,他后面的语句就没有执行的机会了。
“我有些地方没查询到数据是不会报异常的”是否也是select into?

作者: lnuwhy   发布时间: 2011-09-09