SQL 错误“ORA-01722:无效号码”

新手上路,请多包涵

对某人来说非常简单,下面的插页给了我

ORA-01722: 无效号码

为什么?

 INSERT INTO CUSTOMER VALUES (1,'MALADY','Claire','27 Smith St Caulfield','0419 853 694');
INSERT INTO CUSTOMER VALUES (2,'GIBSON','Jake','27 Smith St Caulfield','0415 713 598');
INSERT INTO CUSTOMER VALUES (3,'LUU','Barry','5  Jones St Malvern','0413 591 341');
INSERT INTO CUSTOMER VALUES (4,'JONES','Michael','7  Smith St Caulfield','0419 853 694');
INSERT INTO CUSTOMER VALUES (5,'MALADY','Betty','27 Smith St Knox','0418 418 347');

原文由 Phillip Gibson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 377
1 个回答

对我来说,这个错误是一个有点复杂的问题。

我正在将一组数字( type t_numbers is table of number index by pls_integer; )传递给存储过程。在存储过程中存在一个错误,其中将此集合中的数字与 varchar 列进行比较

select ... where ... (exists (select null from table (i_coll) ic where ic.column_value = varchar_column))

Oracle 应该看到 ic.column_value 是整数,因此不应直接与 varchar 进行比较,但事实并非如此(或者信任转换例程)。

更复杂的是,存储的 proc 有调试输出,但是在 sp 执行之前出现了这个错误(根本没有调试输出)。

此外,集合 [] 和 [0] 没有给出错误,但例如 [1] 出错了。

原文由 Pasi Savolainen 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进