使用PL/SQL连接到Oracle数据库服务器,执行一条update语句:
update pjnl set transtime = to_date('2015-05-14 12:13:20','yyyy-MM-dd HH:mm:ss');
报ORA-01810: format code appears twice
错误,PL/SQL自动把错误定位到to_date函数的第二个参数。该函数用于把字符串转换为Oracle日期,第一个参数为日期字符串,第二个参数指定日期字符串的格式。
yyyy-MM-dd HH:mm:ss
为Java语言中的写法,笔者参考了一下Oracle手册,下面为手册中对不同占位符的介绍:
问题出在分钟占位符的使用上,Oracle并不区分MM和mm,所以报“格式代码出现两次”错误。Oracle数据库SQL中使用mi代替分钟,这一点Java程序员切记不要犯错。
正确的sql语句应该为:
update pjnl set transtime = to_date('2015-05-14 12:13:20','yyyy-MM-dd HH:mi:ss');