我的表结构..投掷无效的号码错误或
A_TEXT(ID number,name varchar2)
POLICY_INFO (PI_ID number,relation_id varchar2)
我有这样的查询。
SELECT * FROM A_TEXT A WHERE a.name = 'test' OR a.ID IN
(SELECT TO_NUMBER(RELATION_ID)
FROM POLICY_INFO
)
当我尝试执行查询时,我得到了无效数字异常。如果你修改了查询一点点像:
SELECT * FROM A_TEXT A WHERE a.name = 'test' OR TO_CHAR(a.ID) IN
(SELECT RELATION_ID
FROM POLICY_INFO
)
它执行得很好。
请访问此链接(http://stackoverflow.com/questions/17740055/oracle-applying-the-to-number-function-to-a-varchar-column) –
可能是** RELATION_ID的值**是一个字符。 – Ajeesh
切勿将数字存储在varchar列中。如果'policy_info.relation_id'确实引用'a_text.id',则使'relation_id'成为一个数字并创建一个外键约束。 –