小编典典

我可以在Oracle中为varchar2传递一个数字吗?

sql

我有一个Oracle表,并且column(col1)的类型为varchar2(12 byte)。它有一个行的值col1就是1234

当我说

select * from table where col1 = 1234

甲骨文说号码无效。这是为什么?为什么我不能通过数字varchar2

编辑:所有的答复都是伟大的。谢谢你。但我无法理解为什么它并不需要1234的时候1234是有效的VARCHAR2数据类型。


阅读 293

收藏
2021-03-23

共1个答案

小编典典

问题在于您希望Oracle将隐式地将1234转换为字符类型。相反,Oracle将列隐式转换为数字。列中有一个非数字值,因此Oracle引发错误。在Oracle文档警告说,不要隐式转换之前它解释了他们将如何得到解决。解释您所看到的行为的规则是:

在将字符值与数字值进行比较时,Oracle将字符数据转换为数字值。

2021-03-23