小编fre*_*tix的帖子

在Oracle上选择字符串作为数字

我发现这种奇怪的行为,我正在用这个打破我的大脑......任何人都有任何想法?

Oracle 10g:我有两个不同的表,都有一个名为" TESTCOL "的列为Varchar2 (10),不可为空.

如果我在table1上执行此查询,我会得到正确的结果:

select * from table1 where TESTCOL = 1234;
Run Code Online (Sandbox Code Playgroud)

请注意,我特别没有放置'1234'...这不是一个错字,这是一个动态生成的查询,我会尽量不改变它(至少在不久的将来不会).

但是,如果我在table2上运行相同的查询,我收到此错误消息:

ORA-01722: Invalid number
Run Code Online (Sandbox Code Playgroud)

两个查询都在同一个会话,同一个数据库上运行.

我已经通过该列加入了这两个表,并且连接工作正常,唯一的问题是每当我尝试使用该条件时都会显示.

关于从一张桌子到另一张桌子有什么不同的任何想法?

提前致谢.

sql oracle oracle10g

9
推荐指数
2
解决办法
7万
查看次数

标签 统计

oracle ×1

oracle10g ×1

sql ×1