ORA-01861: 文字与格式字符串不匹配

    技术2026-08-17  21

    最近几天在家休假,同事打电话来问在用sql批量插入日期格式数据的时候出现了ORA-01861: 文字与格式字符串不匹配,在不修改insert语句与oracle日期格式的前提下,怎么解决这个问题。

     

    简单模拟一下解决过程。

     

    Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 Connected as report

     

    SQL>  create table T_DATE  2  (  3    D DATE,  4    S VARCHAR2(20)  5  );Table created

     

    SQL> insert into t_date values('2011-02-19',1);insert into t_date values('2011-02-19',1)ORA-01861: 文字与格式字符串不匹配

     

    SQL>  ALTER session SET nls_date_format = "YYYY-MM-DD";Session altered

     

    SQL> insert into t_date values('2011-02-19',1);1 row inserted

    SQL> COMMIT;

    Commit complete

    SQL> SELECT * FROM t_date;D           S----------- --------------------2011-02-19  1

    同事测试成功,又问道:我有几千个单独的sql脚本。每个sql都要加ALTER session SET nls_date_format = "YYYY-MM-DD";岂不是很麻烦?

     

    答:只设置一遍,把这些sql脚本集中放到一个sql里来执行就可以了。

    如:ALTER session SET nls_date_format = "YYYY-MM-DD";@D:/1.sql@D:/2.sql。。。@D:/1000.sql

    保存为start.SQL,直接执行这个start.SQL就ok了。

     

    最新回复(0)