想请问 1、系统中的 NLS_LANG 变量如何设置?2、ORACLE 中的 NLS_LANG 又是如何设置的?
解决方案 »
- 为什么oracle中使用序列在已有数据中增加新数据完成自增序号,序号是增加了 但是为什么新加的数据在1,2,3条数据的前头啊
- oracle9i 突然丢失数据 郁闷 急求解决
- 请教在weblogic 9 环境下 JSP 调用 oracle 9 存储过程的问题
- 有关oracle instantclient 创建odbc的问题
- ORACLE8.0.5客户端连接11G报错0RA-02248
- ****请教如何将存储过程返回的记录集写入文本文件****
- csdn上的高手都到那里去了?(100分)
- 十万火急,在线等待
- oracle9i中如何实现表中数据的行列转换,用一条sql语句实现。--急
- 数据库全库备份应该如何恢复啊?
- 求一语句
- 一个过程参数传入问题
bash-2.03$ echo $NLS_LANG
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
bash-2.03$ 在客户端看到字体设置为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK是一致的
Windows在注册表中能够查看到
KKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG
linux下:$NLS_LANG
修改这个值会对程序有微妙影响,某些SQL文执行效果不同
1 NLS_LANGUAGE AMERICAN
2 NLS_TERRITORY AMERICA
3 NLS_CHARACTERSET ZHS16GBK那么NLS_LANG就设置为:AMERICAN.AMERICA_ZHS16GBK
可以是可以不过方法有点危险
1.将现有数据库完整导出成DUMP文件(导出时客户端的nls_lang设置为UTF8)
2.然后新建一个UTF8的库再导进去(同样客户端的nls_lang设置为UTF8)
危险性:UTF8环境下对字符的长度定义是不同的。ORACLE的最大可认标识符为30位 汉字的长度由原来的2位变成3位,有些符号甚至达到8位 如果在你的代码中 有别名或者变量名超过长度的会报错。
最好的方法还是全部导出成SQL脚本文件去做(PLSQL工具可以完成)
数据库的没有变化. NLS_LANG只影响客户端呈现的类型. 如何和数据库不兼容,则乱码.
american_america.UTF8 :UTF-8