PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验
PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验
一、问题现象及解决方法
现象:
1.PL/SQL 无法登录64位数据库
2.在PL/SQL developer中输入中文,保存后,中文变成'??
'这种乱码符号
3.导入带有中文的数据后,中文数据变成'?
?'这种乱码符号
环境:
1.windows7 64位系统
2.oracle11g 64位系统
3.PL/SQL developer 9.0
解决方法:
1.下载windows32位的instantclient包,并放到某个文件夹下。如果D:\instantclient
2.拷贝D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN到D:\instantclient下
(如果oracle11g安装文件夹是D:\App\Administrator\Product\11.2.0\dbhome_1\)
3.把tnsnames.ora文件放到D:\instantclient\Network\Admin文件夹下
4.把D:\instantclient加到操作系统的Path路径的最前面。
5.添加系统环境变量TNS_ADMIN变量的值为D:\instantclient
6.PL/SQL Developer的工具首选项的Oracle主文件夹名为D:\instantclient,OCI库为D:\instantclient\OCI.DLL
7.核对Oracle11g的字符集和操作系统的字符集是否一致。一致才不会乱码,如果需一致为ZHS16GBK。
8.假设Oracle11g字符集不是ZHS16GBK。改动oracle11g的字符集为ZHS16GBK
9.添加操作系统环境变量NLS_LANG变量的值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK或AMERICAN.ZHS16GBK
二、经验教训
网络上对于此类问题。大多也是这么解决的。我依照网络上的方法试了非常多次。还重装过几次Oracle。折腾非常久终于才攻克了乱码问题。
之所以折腾非常久,是由于验证方法上出现了失误,在问题解决之前,我一直认为要把之前输入的中文变成的‘????',使之再次变成中文才算解决这个问题,
实际上再次录入中文。保存后不变成‘???’即解决乱码问题,所以细节非常重要。
有的时候,在普遍的方法都是一样的方法的时候,那么这样的方法应该是奏效的,至于一次次 的操作后,还没解决这个问题,应该冷静的想想操作过程。想想细节,问题可能就出在操作细节上,验证方法上。
三、相关知识
1、怎样查看windows操作系统当前使用的字符集
Chcp
显示活动控制台代码页数量,或更改该控制台的活动控制台代码页。假设在没有參数的情况下使用,则 chcp 显示活动控制台代码页的数量。
语法
chcp [nnn]
參数
指定代码页。
下表列出了全部支持的代码页及其国家(地区)或者语言:
代码页 国家(地区)或语言
437 美国
708 阿拉伯文(ASMO 708)
720 阿拉伯文(DOS)
850 多语言(拉丁文 I)
852 中欧(DOS) - 斯拉夫语(拉丁文 II)
855 西里尔文(俄语)
857 土耳其语
860 葡萄牙语
861 冰岛语
862 希伯来文(DOS)
863 加拿大 - 法语
865 日耳曼语
866 俄语 - 西里尔文(DOS)
869 现代希腊语
874 泰文(Windows)
932 日文(Shift-JIS)
936 中国 - 中文简体(GB2312)
949 韩文
950 繁体中文(Big5)
1200 Unicode
1201 Unicode (Big-Endian)
1250 中欧(Windows)
1251 西里尔文(Windows)
1252 西欧(Windows)
1253 希腊文(Windows)
1254 土耳其文(Windows)
1255 希伯来文(Windows)
1256 阿拉伯文(Windows)
1257 波罗的海文(Windows)
1258 越南文(Windows)
20866 西里尔文(KOI8-R)
21866 西里尔文(KOI8-U)
28592 中欧(ISO)
28593 拉丁文 3 (ISO)
28594 波罗的海文(ISO)
28595 西里尔文(ISO)
28596 阿拉伯文(ISO)
28597 希腊文(ISO)
28598 希伯来文(ISO-Visual)
38598 希伯来文(ISO-Logical)
50000 用户定义的
50001 自己主动选择
50220 日文(JIS)
50221 日文(JIS-同意一个字节的片假名)
50222 日文(JIS-同意一个字节的片假名 - SO/SI)
50225 韩文(ISO)
50932 日文(自己主动选择)
50949 韩文(自己主动选择)
51932 日文(EUC)
51949 韩文(EUC)
52936 中文简体(HZ)
65000 Unicode (UTF-7)
65001 Unicode (UTF-8)
在Windows平台下,直接在命令行中,输入下面命令,就会显示windows操作系统当前使用的字符集:
chcp
影响Oracle数据库字符集最重要的參数是NLS_LANG參数。
它的格式例如以下: NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每一个成分控制了NLS子集的特性。
当中:
Language: 指定server消息的语言, 影响提示信息是中文还是英文
Territory: 指定server的日期和数字格式,
Charset: 指定字符集。
如:AMERICAN _ AMERICA. ZHS16GBK
从NLS_LANG的组成我们能够看出,真正影响数据库字符集的事实上是第三部分。
所以两个数据库之间的字符集仅仅要第三部分一样就能够相互导入导出数据。前面影响的仅仅是提示信息是中文还是英文。
怎么查看数据库版本号
select * from v$version 包括版本号信息,核心版本号信息,位数信息(32位或64位)等
2、查看数据库字符集
数据库server字符集select * from nls_database_parameters,其来源于props$,是表示数据库的字符集。
client字符集环境select * from nls_instance_parameters,其来源于v$parameter,表示client的字符集的设置,可能是參数文件,环境变量或者是注冊表
会话字符集环境select * from nls_session_parameters,其来源于v$nls_parameters。表示会话自己的设置。可能是会话的环境变量或者是alter session完毕,假设会话没有特殊的设置,将与nls_instance_parameters一致。
查询oracle server端的字符集
有非常多种方法能够查出oracle server端的字符集。比較直观的查询方法是下面这样的:
SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
PL/SQL Developer 在windows7 64位系统下连Oaracle11g64位系统的解决经验的更多相关文章
- PL/SQL Developer如何连接64位的Oracle图解
在64位Win7系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQL Developer,此时就不能使用PL/SQL Developer来进行直接连接的,所以要想实现连接还得需要其他 ...
- [Oracle] - 使用32位 PLSQL(PL/SQL Developer)登陆64位Oracle失败之解决
配置环境 Oracle服务端oracle_winx64_12c_database.iso Oracle客户端instantclient-basiclite-nt-12.1.0.1.0.zip 集成开发 ...
- Win8.1OS64位oracle11安装配置及PL/SQL Developer怎样连接64位oracle
Oracle 为什么选择oracle 1.oracle可以在主流的平台上执行,而相对于sql server仅仅支持windows,而windows在wr手里攥着呢,所以你懂的.在安全性上来讲,非常多地 ...
- PL/SQL Developer连接本地64位Oracle数据库
1.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client(我的是11g的oracle),不过需要先申请一个Oracle 帐号,才能下载. 目前下载地址: ...
- PL/SQL Developer 登录 Oracle 12c和Win10下安装Oracle 11g
安装了Oracle 12c 后使用PL/SQL Developer怎么也不能连接到Oracle 12c.网上找一下,按照fcflying所说的操作成功了,所以做个笔记: 1)安装Oracle 12c ...
- PL/SQL Developer 中的问题:Initialization error Could not load ".../oci.dll"解决方法
---------------------------------------------------------------------------------------------------- ...
- PL/SQL Developer从11.0.6版本开始32/64为之区分
PL/SQL Developer从11.0.6版本开始32/64为之区分 在PL/SQL Developer11.0.6版本之前,64位Windows操作系统在使用PL/SQL Developer都未 ...
- PL/SQL Developer 建立远程连接数据库的配置 和安装包+汉化包+注册机
PL/SQL Developer ,主要是讲一下如何配置PL/SQL Developer ,连接Oracle数据库. [知识点] 1.PL/SQL Developer 是什么? PL/SQL Deve ...
- 配置PL/SQL Developer连接Oracle数据库
准备: PL/SQL Developer:我用的是plsqldev1005(32位) win32_11gR2_client:记住一定是32位的,因为PL/SQL Developer只认32位的 安装成 ...
随机推荐
- DLX模板
对于数独问题 ; //3*3数独 ; // 一格能填9个数 9*9格 +; // 9*9*4=(9+9+9)*9+9*9 (9+9+9)是9行 9列 9格 *9是9个数 9*9是81个格子 +MaxM ...
- Java泛型反射机制(二)
/** * @author Administrator * 好处:泛型:1安全 2减少代码重用率 */ package com.test; import java.lang.reflect.Metho ...
- HashMap与HashTable联系与区别
HashMap与HashTable 1.hashMap去掉了HashTable 的contains方法,但是加上了containsValue()和containsKey()方法. 2.hashTabl ...
- 如何查看自己运行ubuntu是32位还是64位
当安装ubuntu在pc上,不推荐在32位pc安装64位操作系统,64位pc安装32位操作系统 方法/步骤 按ctrl+shift+t 快捷键,打开终端,输入sudo uname --m ,按下ent ...
- hdu 2089 不要62(初学数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意: 给定 m,.n; 求车牌号 m~n之间 有多少数字 不含 4或62 ,8652是可以的 . ...
- jQuery里面的datepicker日期控件默认是显示英文的,如何显示中文或其他语言呢?
jQuery里面的datepicker日期控件默认是显示英文的,如何让他显示中文或其他呢? [官方的写法]: (1)引入JS文件: <script type="text/javascr ...
- Chrome已原生支持“Chrome To Mobile”
完成PC和手机端Chrome的同gmail帐号绑定后,即可按如下操作进行: 已知在版本“19.0.1084.15”中,这个功能默认未开启,需要进入“chrome://flags/”进行手工启用(早几期 ...
- Android的string-array数据源简单使用
在Android中,用string-array是一种简单的提取XML资源文件数据的方法. 例子如下: 把相应的数据放到values文件夹的arrays.xml文件里 <?xml version= ...
- 数学物理学报Offprints and Remuneration
- HDU-5414 CRB and String
http://acm.hdu.edu.cn/showproblem.php?pid=5414 题意:给定字符串s和t,可以在s里面选一个字符c,然后任选一个字符d(d!=c)将d插入到c的后面,问能不 ...