今天用pl/sql developer查询时出错了。sql语句如下:
select t.* from t_user_test t where t.t_dept = 48000148400 and t.t_user=790000561;
报‘无效数字’错误,把 and t.t_user=790000561 去掉就能查询出来,把790000561改成‘790000561’也能查询出来。
那个t_dept和t_user都是varchar2(100)类型的,怎么t_dept就没错?搞不懂为什么。
select t.* from t_user_test t where t.t_dept = 48000148400 and t.t_user=790000561;
报‘无效数字’错误,把 and t.t_user=790000561 去掉就能查询出来,把790000561改成‘790000561’也能查询出来。
那个t_dept和t_user都是varchar2(100)类型的,怎么t_dept就没错?搞不懂为什么。
解决方案 »
- oracle form list item用法
- 安装oracle 找不到任何关于oracle的服务
- 数据库 插入 以及 查询大数据 优化问题 高手帮忙 急的要死 这几天就要求做出来
- sqlload log 几点问题
- OCI 调用OCIDefineByPos() 、 OCIStmtFetch()后 输出的字符串末尾有乱码的问题
- 在写存储过程时,有没有什么方法快速将表中的所有字段名加上P_
- 高手帮我看看这个触发器该怎么写?
- 如何避免同一数据执行两次插入?
- windowsserver2012上是否可以安装oracle10g
- 求助:oracle tnsping延时时快时慢
- 我想请问,orcale10g 32位客户端连接orcale 11g64位服务器端的数据库会不会有问题
- BIEE查询时偶尔返回空值,救命呀!
而 t_dept 的值都是数字型的,所以不报错
SQL> create table test1(id varchar2(200));
Table created
SQL> insert into test1 values('1');
1 row inserted
SQL> commit;
Commit complete
SQL> select * from test1 where id = 1;
ID
--------------------------------------------------------------------------------
1
SQL> insert into test1 values('-');
1 row inserted
SQL> commit;
Commit complete
SQL> select * from test1 where id = 1;
select * from test1 where id = 1
ORA-01722: 无效数字
在解析sql时,如果是写为t_dept = 48000148400,它会默认将t_dept转型为数字,然后进行比对。
故报出如题述错误。