no_data_found 时出现异常,我想将两个变量分配给 null
Posted
技术标签:
【中文标题】no_data_found 时出现异常,我想将两个变量分配给 null【英文标题】:Exception when no_data_found, i want to assign two variables to null 【发布时间】:2019-04-23 09:27:24 【问题描述】:我已经编写了一个选择查询来获取两个列值,如果出现异常,我想在 ORACLE STORED PROCEDURE 中将这些变量分配给 null。
例如:
select column A, column B into l_a, l_b
from ......
exception
when no_data_found then
l_a: = null and l_b := null ;
【问题讨论】:
究竟是什么阻碍了你朝着这个崇高的目标前进? 如果我这样写,那就报错了! pls-00103:在期望以下之一时遇到符号“=”: 这里是错字,我在oracle中写的正确 嗯。您所拥有的是语法错误。事实上,如果冒号和等号之间有一个恶意空格,就会出现这种语法错误。你说这不会出现在你的代码中?很好。无论哪种方式,如果您不发布您正在运行的实际代码(或至少是准确编辑的版本),我们都无法帮助您诊断您的代码。 如果你像上面写的那样,在一行l_a := null and l_b := null;
那么它会给出这个错误。在您的异常中写两行:l_a := null;
和第二行 l_b := null;
。
【参考方案1】:
有错别字。它必须是 :=
而不是 : =
。您还需要用分号分隔语句:;
。通常语句在单独的行中。
l_a := null;
l_b := null;
除此之外,您不需要分配 null。变量最初分配为 null,如果未找到数据,则它们保持为 null。
当然,如果变量在值保留之前被分配了一个值。所以你也可以这样做。
l_a := null;
l_b := null;
select column A, column B into l_a, l_b
from ......
-- do something with l_a and l_b here
exception
when no_data_found then
null; -- ignore and do nothing
但通往罗马的道路总是多条路
【讨论】:
我认为您编写的第一行代码不会编译。这个:l_a := null and l_b := null ;
是的,你做到了。现在看起来好多了。以上是关于no_data_found 时出现异常,我想将两个变量分配给 null的主要内容,如果未能解决你的问题,请参考以下文章
将 HTML5 视频标签分配给 webGL 纹理时出现 CORS/跨域安全异常