同一个数据运行两个实例

[复制链接]
查看11 | 回复9 | 2013-2-25 14:51:24 | 显示全部楼层 |阅读模式
一个实例字符集为:
NLS_CHARACTERSET
ZHS16GBK
NLS_NCHAR_CHARACTERSET AL16UTF16
另一个实例字符集为:
NLS_CHARACTERSET
AL32UTF8
NLS_NCHAR_CHARACTERSET UTF8
需要两种不同字符集,,一定要2个实例才能解决吗?
什么情况下必须要2个实例? 因为两个实例对服务器资源应该是比较浪费的啊,如果能用一个实例满足要求应该会节约服务器资源
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
这个必须两个数据库。
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
俩数据库
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
不一定吧,根据高人文章:http://www.itpub.net/thread-838447-1-1.html

应该是将输入系统的字符集 与环境变量的设置的字符集 一致,数据库字符集可以为任意,,,,当客户端插入字符时候时oracle会作编码映射,,,当读取字符时oracle 也会将数据字符集与客户端字符集映射;
所以,只要保证客户端输入字符集与环境变量设置的字符集一致即可,不要开2个实例来应付不同客户端字符集输入的问题阿!
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
其实乱码,说到底就是用于显示字符的操作系统没有在字符编码中找到对应的字符导致的,造成这种现象的主要原因就是:
1:输入操作的os字符编码和查询的os字符编码不一致导致出现乱码。
2:输入操作的客户端字符集(nls_lang)和查询客户端字符集(nls_lang)不同,也可能导致查询返回乱码或者错误的字符
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
其实乱码,说到底就是用于显示字符的操作系统没有在字符编码中找到对应的字符导致的,造成这种现象的主要原因就是:
1:输入操作的os字符编码和查询的os字符编码不一致导致出现乱码。
2:输入操作的客户端字符集(nls_lang)和查询客户端字符集(nls_lang)不同,也可能导致查询返回乱码或者错误的字符
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
只要保证:
1. 输入操作的os字符编码和查询的os字符编码一致
2. 输入操作的客户端字符集(nls_lang)和查询客户端字符集(nls_lang)相同
数据库字符集为任意一种熟知的字符集 都可以,,,因为,客户端插入字符时候时oracle会作编码映射,读的时候也会做编码映射 就不会出现乱码现象,服务器也就没必要开2个实例搞2种字符集了!

回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
只要将数据库的字符集设置到足够大,最好是unicode ,即可
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
八楼说的是正解,只要选字符集设置足够包含你输入的文字就够了,oracle会自动帮你转换成对应的文字
DB里选unicode 类的就好了

回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
直接用AL16UTF16不行么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行