大家进来谈谈字符集的问题???

htp_htp 2003-10-16 03:08:25
我有一个数据库,字符集默认为ZHS16GBK
修改客户端的注册表nls_lang 为 SIMPLIFIED CHINESE_CHINA.ZHS16GBK
程序保存的时候提示ora-01843 无效的月份

当我把nls_lang改为 AMERICAN_AMERICA.ZHS16GBK 时

保存成功

在oralce8i中好像没有AMERICAN_AMERICA.ZHS16GBK 这种写法

我不太清楚 改成这种结果会带来什么潜伏的问题?????

我这种写法对吗?
在数据库中看
NAME VALUE$
------------------------------ ----------------------------------------
DICT.BASE 2
DBTIMEZONE 0:00

NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN

NAME VALUE$
------------------------------ ----------------------------------------
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_NCHAR_CHARACTERSET ZHS16GBK
NLS_RDBMS_VERSION 8.1.7.0.0
GLOBAL_DB_NAME ORANT
EXPORT_VIEWS_VERSION 8

nls_lang = language_terriory.charset

为什么会生成SIMPLIFIED CHINESE_CHINA.ZHS16GBK

我该在数据库如何修改,就不需要修改注册表。是想永久的修改

不是用alter session set nls_date_format = "yyyy-mm-dd"
默认的格式选择的数据为
SQL> select sysdate from dual;

SYSDATE
-------------------
16-10月-03

保存出错


我设置的nls_lang有什么问题

希望大家来讨论

...全文
36 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
chanet 2003-10-17
  • 打赏
  • 举报
回复
SIMPLIFIED CHINESE_CHINA.ZHS16GBK 的话,

用 to_date(日期,'yyyy-mm-dd')就可以.
或 to_date(日期,'yyyy-mon-dd').
htp_htp 2003-10-17
  • 打赏
  • 举报
回复
Ameircan_America.zhs16gbk

这种格式存在吗?
htp_htp 2003-10-17
  • 打赏
  • 举报
回复
把贴子提前
podded 2003-10-16
  • 打赏
  • 举报
回复
你保存时程序中时间的格式是什么。

NLS_LANG的组成为“国家语言设置.字符集”,如nls_lang=simplified chinese_china.zhs16gbk。客户端的字符集最好与数据库端一样,国家语言设置可以不一样,如zhs16gbk的字符集,客户端可以是nls_lang =simplified chinese_china.zhs16gbk或Ameircan_America.zhs16gbk,都不影响数据库字符的正常显示

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧