我正在尝试按发票编号连接两个表中的数据,

LOC         NOT NULL VARCHAR2(40)
INV_ORG            NUMBER

像这样它工作正常:
SELECT     oh.inv_org,e.loc
FROM       headers oh, sites e
WHERE
AND e.location = TO_CHAR(oh.inv_org);

但是当我尝试将字符转换为数字时,我得到
ORA-01722: 无效号码
SELECT     oh.inv_org, e.loc
FROM       headers oh, sites e
WHERE
AND to_number(e.loc) = oh.inv_org;



我不知道为什么,因为在选择中,转换也可以正常工作
INV_ORG  110992
LOC  110992
OH.INV_ORG-TO_NUMBER(E.LOC) 0

最佳答案

检查您的数据,可能有 e.loc 中的值无法转换为数字。

顺便说一下,下面的 select 给出了 ORA-01722:
SELECT to_number('test') FROM dual

关于sql - ORA-01722 : invalid number in to_number,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51925307/

10-10 17:59
查看更多