oracle month valid,解决PL/SQL Developer下ORA-01843 not a valid month错误

由于前一段时间犯了一个错误,对一个达到99%的表空间没有提出预警,造成生产事务一度中断,因此受到口头警告,后来想了一下还是决定把所有表空间的信息记录到一个表里面,然后对表进行检查,监控超过90%以上占用率并且日增长环比较高的表空间,这个脚本完成之后,一直是在fedora下进行记录,然后这段时间据说要改用插件认证的方式来访问内网,而插件认证必须得要windows的系统,不得已,为了保证在换成windows后不至于手足无措决定提前适应windows的环境,于是就把脚本都迁移到了win7,在win7上用virtualbox创建了一个 虚拟机OEL5.5然后安装oracle10g打了10205的补丁,可是在实际操作过程当中,由于虚拟机里面的oracle日期格式 nls_date_format是 DD-MON-RR,而win7的oracle client由于是中文环境,同时使用PL/SQL Developer来作为编辑、执行语句的工具,一执行插入语句就会报无效的月份

INSERT INTO TABLESPACE_MONITOR VALUES ('192.168.1.139','ibss','27-JUL-11','TBS_IDX_B3',0,0,'0.00%','Permanent','OFFLINE');

27-JUL-11重点就是这里,这个当然还是日期格式的问题造成的,于是在PL/SQL Developer里面修改了NLS Options,修改date选项为 DD-MON-RR可以执行语句还是报无效的月份,于是执行语句查看结果

SQL> select sysdate from dual;

SYSDATE

-----------

28-7O2-RR 4:03:12 PM发现结果还是有问题,继续修改,改为DD-MMM-RR 这个是PL/SQL Developer里面oracle默认的格式不知道为何是MMM,姑且不管,改好后再来看

SQL> select sysdate from dual;

SYSDATE

-----------

28-Jul-11 4:05:36 PM然后再次执行,依然是同样的错,将NLS Options下的time选项改为空白,继续执行

SQL> select sysdate from dual;

SYSDATE

-----------

28-Jul-11看到格式跟我的一致了,心想这下总该对了吧,继续执行还是报错,然后将语句更换成中文月份

INSERT INTO TABLESPACE_MONITOR VALUES ('192.168.1.139','ibss','27-7月 -11','TBS_IDX_B3',0,0,'0.00%','Permanent','OFFLINE');

结果就提示已插入1行,看来问题很明了,是PL/SQL Developer采用的nls_lang的问题,可是在那里改呢?由于还要做检查,只好先用sqlplus来插入语句了,结果sqlplus也是同样的错误,于是打开注册表将oracle的NLS_LANG给修改了一下

找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1下的NLS_LANG键值,(首先备份一下,修改注册表做备份是一个好习惯,不然出了什么问题,后悔可就来不及了)原有的键值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK” 然后改为“AMERICAN_AMERICA.ZHS16GBK” 然后在用sqlplus登陆虚拟机下的数据库,这里使用了简单连接

sqlplus scott/tiger@192.168.56.101:1521/demo

然后执行插入语句就没有问题了。

日常的工作完成之后,再回过头来解决PL/SQL Developer的问题,毕竟还是它用起来方便一些啊。继续看PL/SQL Developer=>tool=>Preference=>Appearance里面发现有一个language选项,但下拉框显示的却是除了none,并无其他选项。经过一番摸索总算找到了解决办法,找到HKEY_CURRENT_USER\Software\Allround Automations\PL/SQL Developer\Preferences\ 然后新建一个String Value然后命名为language,然后输入值“AMERICAN”然后重新打开一个PL/SQL 执行刚开的语句,发现OK没有再报错了,换成 28-7月- 11的话就开始报错了。 记录一下,今天收获不错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值