您的位置:首页 > 其它

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

2011-02-19 23:43 309 查看
最近几天在家休假,同事打电话来问在用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了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: