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

*********************************情景分析**************************************
SQL> insert into scott.emp values(7968,'sheng','CLERK',7902,'2011-09-09','800','
300',20);
insert into scott.emp values(7968,'sheng','CLERK',7902,'2011-09-09','800','300',
20)
                                                       *
第 1 行出现错误:
ORA-01861: 文字与格式字符串不匹配

根据desc emp表你就会发现hiredate是date类型

date类型由会话环境决定,或者由用户定义,与数据库无关

所以对于上类情况,应该做
SQL> select sysdate from dual;(这个操作可以看到你的oracle环境的系统时间是什么格式的)

SYSDATE
--------------
28-11月-11

由于我设置的是zhs16gbk字符集,所以显示的时间是中文的显示方式。

这个时候可以用两种方法来解决这个问题。

一,用todate转换函数,来对时间做处理,进行插入


SQL> insert into scott.emp values(7968,'sheng','CLERK',7902,to_date('2011-09-09'
,'YYYY-mm-dd'),'800','300',20);

已创建 1 行。(此操作没问题)


二,修改当前会话时间格式,再进行插入

SQL> alter session set nls_date_format='YYYY-MM-DD';

会话已更改。

SQL> insert into scott.emp values(7970,'dong','CLERK',7902,'2011-09-09','800','3
00',20);

已创建 1 行。 (此操作也没问题)

 
    但是alter session操作,只是修改当前会话的操作,如果换个用户,后者在打开一个窗口,session
的效果都会失效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值