Oracle数据库执行查询语句报错:无效数字。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle数据库执行查询语句报错:无效数字。相关的知识,希望对你有一定的参考价值。
select s.xtmc,
t.access_ip,
to_number(to_char(t.access_time,'yyyy-MM-dd hh24:mm:ss')) access_time,
t.userid
from
sso_access_log t,
sso_db_order s
where t.userid = 'EIPUSER9969'and
t.sysid = s.id
order by access_time desc
这句话出错.
原因
假如 t.access_time = 2011年10月10日 10:00:00
那么
to_char(t.access_time,'yyyy-MM-dd hh24:mm:ss')
的结果 = 2011-10-10 10:00:00
然后你想
to_number ( '2011-10-10 10:00:00' ) 自然是要报错了。追问
select s.xtmc,
t.access_ip,
to_char(t.access_time,'yyyy-MM-dd hh24:mm:ss') access_time,
t.userid
from
sso_access_log t,
sso_db_order s
where t.userid = 'EIPUSER9969'and
t.sysid = s.id
order by access_time desc
这样也报无效数字的。
要不用一下 排除法
select s.xtmc,
t.access_ip,
t.access_time,
t.userid
from
sso_access_log t,
sso_db_order s
where t.userid = 'EIPUSER9969'
and t.sysid = s.id
order by access_time desc
看看这样出错么?
如果不出错, 那么说明问题出在 to_char 那里, 你需要进一步核对 access_time 的数据类型.
如果出错了, 那么说明问题和 to_char 无关。需要进一步调查。
改为to_char(t.access_time,'yyyy-MM-dd hh24:mm:ss') as access_time,
不知道你又搞成to_number干什么追问
select s.xtmc,
t.access_ip,
to_char(t.access_time,'yyyy-MM-dd hh24:mm:ss') access_time ,
t.userid
from sso_access_log t
left join sso_db_order s
on t.sysid = s.id
where t.userid = 'EIPUSER9969'
order by access_time desc
以上是关于Oracle数据库执行查询语句报错:无效数字。的主要内容,如果未能解决你的问题,请参考以下文章
SQL中,使用NVL函数,报错:ora-01722:无效数字