[经验分享]在oracle中插入时间时出现“无效的月份”解决方法

这个问题是我曾经在使用中遇到的,在网上搜了一下,发现很多人都遇到过,并且也说明了很多解决方法。引起这个问题是有很多种可能的,现在我将在网上收集的资料结合我自己的解决经验总结一下,希望对大家有帮助。

我用的是oracle10.2

问题的出现牵涉到一个字符集的概念,先做个简要介绍,深入的知识就自己google吧

影响oracle数据库字符集最重要的参数是NLS_LANG参数。它的格式如下:
NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。其中:
Language 指定客户端消息的语言,territory 指定客户端的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK

查看客户端字符集参数:select * from nls_session_parameters;

在网上介绍的很多方法只能适用一次,再次登录数据库后,又需要修改。

在windows下直接修改注册表可达到一劳永逸的效果:(建议修改前请关闭数据库)

Regedit.exe--HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/HOME0/NLS_LANGUAGE

如果是默认安装oracle的话,NLS_LANGUAGE这一项的值应该是SIMPLIFIED CHINESE_CHINA.ZHS16GBK(属于中文环境)
双击修改其值为:AMERICAN_ AMERICA.ZHS16GBK (英文环境)

重启数据库问题解决。

注:US7ASCII是ZHS16GBK的子集,至于选择哪个字符集,依据自身需要。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值