今天在oracle中执行插入语句的时候报了一个奇怪的错误,在程序中报的错误是ORA-01745: 无效的主机/绑定变量名,网上一查说是缺失逗号,在查询分析器执行的时候报缺失的逗号,仔细看了一下也没有缺啊,原因最后被找到了
错误的代码
INSERT INTO TABLE (GROUPID,GROUPDOCTORID,GROUPWORK,"LEVEL",OPERATORID,OPERATORTIME) VALUES ('1','1','1','1','1',2016/11/18 11:05:32)
正确的代码
INSERT INTO TABLE (GROUPID, GROUPDOCTORID, GROUPWORK, "LEVEL", OPERATORID, OPERATORTIME)
VALUES ('1','1','1','1','1',to_date('2016/11/18 11:05:32','yyyy-mm-dd hh24:mi:ss')
Oracle 中把时间字符串转换为时间类型的语法为:
to_date('2013-04-29 15:50:54','yyyy-mm-dd hh24:mi:ss')
to_date(to_char(2013-04-29 15:50:54,'YYYY-mm-dd'),'YYYY-mm-dd')
-------------------------------------------------------------------------------------------
修正:ORA-01745: 无效的主机/绑定变量名
如果使用了参数传递赋值,也要关注在参数中是否有和oracle重复的关键字
"INSERT INTO T_DOCTOR_DETAIL (GROUPID,GROUPDOCTORID,GROUPWORK,OPERATORID,OPERATORTIME,"LEVEL") " +//"LEVEL", "VALUES (@GROUPID,@GROUPDOCTORID,@GROUPWORK,@OPERATORID,@OPERATORTIME,@LEVEL)"; //此行中@LEVEL中在执行是也会被提示为关键字,修改参数名称即可
搜索公众号“一条正弦”或扫码关注公众号