gpt4 book ai didi

oracle - 在Oracle中处理错误号码

转载 作者:行者123 更新时间:2023-12-03 07:54:32 25 4
gpt4 key购买 nike

我在一个过程中查询到一条记录,该过程返回“ORA-01722:无效编号”。这是因为该字段实际上是文本,并且在一条记录上有人输入了“.-11”而不是“-.11”,然后我们试图将其添加到另一个数字中。

当我知道可能有一个错误的数字时,如何处理查询?我想在字段中显示NULL或“错误”或其他内容,而不是跳过它(不好)或使查询失败(更糟)。

查询可能类似于以下内容,所有字段均定义为文本:

SELECT Tbl_ID
, Tbl_InValue
, Tbl_OutValue
, (Tbl_InValue + Tbl_OutValue)/2 Tbl_Avg
From MyTable

如果我有如下表值
Tbl_ID    Tbl_InValue    Tbl_OutValue
1 .5 3.2
2 1.1 .-11
3 -3 .5

我想输出类似
Tbl_ID    Tbl_InValue    Tbl_OutValue   Tbl_Avg
1 .5 3.2 1.85
2 1.1 .-11 ERROR
3 -3 .5 -1.25

最佳答案

您可以编写一个函数来执行计算并返回varchar2结果:

create function get_average(in_value in varchar2, out_value in varchar2) return varchar2 is
begin
return to_char((to_number(in_value) + to_number(out_value)) / 2);
exception
when others then
return 'ERROR';
end;

然后在选择中使用它:
select get_average(Tbl_InValue, Tbl_OutValue) from MyTable;

关于oracle - 在Oracle中处理错误号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27609633/

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