今天在oracle中执行插入语句的时候报了一个奇怪的错误,在程序中报的错误是ORA-01745: 无效的主机/绑定变量名,网上一查说是缺失逗号,在查询分析器执行的时候报缺失的逗号,仔细看了一下也没有缺啊,缘由最后被找到了html
错误的代码
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')oracle
-------------------------------------------------------------------------------------------spa
修正:ORA-01745: 无效的主机/绑定变量名code
若是使用了参数传递赋值,也要关注在参数中是否有和oracle重复的关键字orm
"INSERT INTO T_DOCTOR_DETAIL (GROUPID,GROUPDOCTORID,GROUPWORK,OPERATORID,OPERATORTIME,\"LEVEL\") " +//\"LEVEL\", "VALUES (@GROUPID,@GROUPDOCTORID,@GROUPWORK,@OPERATORID,@OPERATORTIME,@LEVEL)"; //此行中@LEVEL中在执行是也会被提示为关键字,修改参数名称便可