在oracle sql 命令窗口中出现ORA-01858: 在要求输入数字处找到非数字字符什么意思啊?

在oraclesql命令窗口中出现ORA-01858:在要求输入数字处找到非数字字符ORA-06512:在"SER_SHH.B",line7ORA-06512:在line... 在oracle sql 命令窗口中出现ORA-01858: 在要求输入数字处找到非数字字符
ORA-06512: 在 "SER_SHH.B", line 7
ORA-06512: 在 line 2什么意思啊?
这是过程,create or replace procedure B is
begin
for d in (select a.zjcx,a.jxdm,a.jxmc,a.zkrq,a.zkrs,b.kskm,b.kddm,c.pxcx,c.pxcsl,count(a.zjcx)
from shh_jxksap a,SHH_JXKDGXB b,shh_jxpxchz c
where a.jxdm=b.jxdm and b.jxdm =c.jxdm and a.zkrq>to_date('20150601','yyyymmdd')
group by a.zjcx,a.jxdm,a.jxmc,a.zkrq,a.zkrs,b.kskm,b.kddm,c.pxcx,c.pxcsl order by a.zkrs desc) loop
insert into zja_C(zjcx,jxdm,jxmc,zkrq,zkrs,kskm,kddm,pxcx,pxcsl) values
(d.zjcx,d.jxdm,d.jxmc,d.pxcx,d.pxcsl,d.kskm,d.zkrq,d.zkrs,d.kddm);
end loop;
commit;
end;
求详解,谢谢
展开
 我来答
大野瘦子
高粉答主

2019-08-23 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34万
展开全部

意思是本来要求只能输入数字的,现在给了非数字的。

出错原因是:preparedstatement在执行的时候不能把红框内的串替换为sql中的问号,主要是to_date函数替换不了。

dat是个date类型应该写成:insert into tablename(colname) values ('"+dat.toString()+"')" ;
这样数据库才能把dat.toString()转化为数据库中的日期类型。

扩展资料:

注意事项

to_date函数先放到sql语句中,然后替换后面的变量,就不报这个错误了。

在oracle中建有date类型的字段,插入可以采取如下方法:

1、如果是小时为:1-12 采取如下格式:yyyy-mm-dd HH:MI:SS 

insert into test values(to_date('2009-5-7 07:09:37','yyyy-mm-dd HH:MI:SS'));

2、如果是小时为:1-24 采取如下格式:yyyy-mm-dd HH24:MI:SS 

insert into test values(to_date('2009-5-7 17:09:37','yyyy-mm-dd HH24:MI:SS'));

啊_科
2015-07-18 · TA获得超过268个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:127万
展开全部
其实就是说,本来要求只能输入数字的,你现在给了非数字的。
估计是insert into zja_C 这个表时,给某个字段的值不符合规范,你可以检查下zjcx,jxdm,jxmc,zkrq,zkrs,kskm,kddm,pxcx,pxcsl 这几个字段哪些是只能传数字的。然后打印下传入的值是什么。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
碧血玉叶花
推荐于2017-10-04 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1710万
展开全部
dat是个date类型
应该写成
insert into tablename(colname) values ('"+dat.toString()+"')" ;
这样数据库才能把dat.toString()转化为数据库中的日期类型。

//
应按照 fancyivan 的做法去做,我只是简单处理了,要符合各种数据库的要求,还得用函数转化。
str=dat.getYear()+"-"+dat.getMonth()+"-"+dat.getDay()+" "+dat.getHour()+":"+dat.getMinute()+":"+dat.getSecond();
String sql = "insert into tablename(colname)values(to_date('"+str+"','yyyy-MM24-dd hh:mm:ss'))";
追问
ORA-01858: 在要求输入数字处找到非数字字符

ORA-06512: 在 "SER_SHH.B", line 7
ORA-06512: 在 line 2指的是那儿啊?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式