为什么当我尝试在SQL Developer中运行此查询时出现显示的错误:
DECLARE
p_latitude number;
BEGIN
p_latitude:=TO_NUMBER(LTRIM(RTRIM(REGEXP_SUBSTR('BT1 1AA|54.60240|-5.92214|875082434', '[^|]+', 1, 2),'"'),'"'));
END;
错误:
ORA-06502:PL / SQL:数字或值错误:字符到数字的转换错误
ORA-06512:在第4行
有人可以帮助我解决此错误吗?
预期输出:
54.60240
答案 0 :(得分:1)
我认为您可以通过这样的转换来管理它:
DECLARE
p_latitude number;
BEGIN
with t(nr) as
(
select LTRIM(RTRIM(REGEXP_SUBSTR('BT1 1AA|54.60240|-5.92214|875082434', '[^|]+', 1, 2),'"'),'"')
from dual
)
select to_number(replace(nr,'.',','),'fm99G990D00000','NLS_NUMERIC_CHARACTERS = '',.''')
into p_latitude
from t;
END;