Jer*_*nch 2 oracle plsql oracle11g
以下代码块有时会出现"ORA-01403:NO DATA FOUND"错误.在第一个查询中,我检索存储在另一个数据库的表中的数据,并将该数据存储到临时表中.在第二个查询中,我从临时表中选择数据INTO局部变量.我必须这样做,因为其中一个字段是CLOB,并且无法跨数据库链接选择CLOB到本地变量.
-- insert clob from remote database into temp table across database link
-- it will be deleted upon implicit commit when the report ends;
INSERT INTO tmp_xml_result
SELECT add_id, site_cd, result_txt
FROM vw_add_result@ADifferentServer
WHERE add_id = p_add_id
AND site = p_site;
-- now that clob is local, we can select it into a variable
SELECT xml
INTO v_xml
FROM tmp_xml_result
WHERE id = p_add_id
AND site = p_site;
Run Code Online (Sandbox Code Playgroud)
该块并不总是错误.当它发生错误时,第二个查询将抛出NO DATA FOUND.
如何调整此代码块以使其永远不会导致"ORA-01403:NO DATA FOUND"错误?我知道我可以在一个包裹块BEGIN / EXCEPTION WHEN NO_DATA_FOUND... / END的块,但一旦他们的理想解决方案将返回临时表中的内容是可用的.
我的环境使用"Oracle Database 11g企业版版本11.2.0.4.0 - 64位生产".
小智 5
插入后检查sql%Rowcount - 如果> 0,则继续,否则执行其他操作.
或者在插入后运行count(*)查询 - 如果为0,则不运行select..成.
或者添加一个异常块来捕获ORA-01403.
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |