gpt4 book ai didi

oracle - 从临时表中选择时未找到数据

转载 作者:行者123 更新时间:2023-12-02 09:28:05 25 4
gpt4 key购买 nike

以下代码块有时会出现“ORA-01403:NO DATA FOUND”错误。在第一个查询中,我检索存储在另一个数据库的表中的数据,并将该数据存储到临时表中。在第二个查询中,我将临时表中的数据选择为局部变量。我必须这样做,因为其中一个字段是 CLOB 和 it is not possible to select a CLOB into a local variable across a database link .

-- 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;

该 block 并不总是出错。当它出错时,第二个查询会抛出 NO DATA FOUND。

如何调整此代码块,使其永远不会导致“ORA-01403: NO DATA FOUND”错误? 我知道我可以将该代码块包装在 BEGIN/EXCEPTION 中WHEN NO_DATA_FOUND.../END block ,但是理想的解决方案将在临时表的内容可用后立即返回它们

我的环境使用“Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production”。

最佳答案

插入后检查 sql%Rowcount - 如果它 > 0,则继续,否则执行其他操作。

或者在插入后运行 count(*) 查询 - 如果它是 0,则不要运行 select 。 。进入。

或者添加异常 block 来捕获 ORA-01403。

关于oracle - 从临时表中选择时未找到数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52174791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com