PL/SQL开发时,异常“ORA-01722: 无效数字或者ORA-01722: invalid number”的原因分析(一)

如果是字符型的列,在记录中存在非数值的值,那么在隐转换的时候就会报错
SQL> create table t (id varchar2(10));

表已创建。

SQL> insert into t values('aaa');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from t where id = 1111;
select * from t where id = 1111
*
ERROR 位于第 1 行:
ORA-01722: 无效数字


SQL> insert into t values('11111111');

已创建 1 行。

SQL> commit;

提交完成。

SQL> select * from t where id = 111;
select * from t where id = 111
*
ERROR 位于第 1 行:
ORA-01722: 无效数字


SQL> delete from t where id = 'aaa';

已删除 1 行。

SQL> commit;

提交完成。

SQL> select * from t where id = 111;

未选定行

SQL>

你可能感兴趣的:(sql)