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位系统的解决经验的更多相关文章

  1. PL/SQL Developer如何连接64位的Oracle图解

    在64位Win7系统上安装64位的Oracle数据库,但是没有对应的64位PL/SQL Developer,此时就不能使用PL/SQL Developer来进行直接连接的,所以要想实现连接还得需要其他 ...

  2. [Oracle] - 使用32位 PLSQL(PL/SQL Developer)登陆64位Oracle失败之解决

    配置环境 Oracle服务端oracle_winx64_12c_database.iso Oracle客户端instantclient-basiclite-nt-12.1.0.1.0.zip 集成开发 ...

  3. Win8.1OS64位oracle11安装配置及PL/SQL Developer怎样连接64位oracle

    Oracle 为什么选择oracle 1.oracle可以在主流的平台上执行,而相对于sql server仅仅支持windows,而windows在wr手里攥着呢,所以你懂的.在安全性上来讲,非常多地 ...

  4. PL/SQL Developer连接本地64位Oracle数据库

    1.安装oracle Clinet 首先到Oracle官网上去下载一个Oracle 11g Client(我的是11g的oracle),不过需要先申请一个Oracle 帐号,才能下载. 目前下载地址: ...

  5. PL/SQL Developer 登录 Oracle 12c和Win10下安装Oracle 11g

    安装了Oracle 12c 后使用PL/SQL Developer怎么也不能连接到Oracle 12c.网上找一下,按照fcflying所说的操作成功了,所以做个笔记: 1)安装Oracle 12c ...

  6. PL/SQL Developer 中的问题:Initialization error Could not load ".../oci.dll"解决方法

    ---------------------------------------------------------------------------------------------------- ...

  7. 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都未 ...

  8. PL/SQL Developer 建立远程连接数据库的配置 和安装包+汉化包+注册机

    PL/SQL Developer ,主要是讲一下如何配置PL/SQL Developer ,连接Oracle数据库. [知识点] 1.PL/SQL Developer 是什么? PL/SQL Deve ...

  9. 配置PL/SQL Developer连接Oracle数据库

    准备: PL/SQL Developer:我用的是plsqldev1005(32位) win32_11gR2_client:记住一定是32位的,因为PL/SQL Developer只认32位的 安装成 ...

随机推荐

  1. c++ const char *c_str(); 坑的学习

    语法: const char *c_str(); c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过st ...

  2. Altium Designer学习: 允许闭合回路

    使用AltiumDesigner画PCB时,顶层和底层都有电源线走 但是通过过孔链接的,主要是因为我这里可使用了几个相同的电源接口,把这些上下层的电源接口连在一起就很容易画出闭合回路,这自身没有太大的 ...

  3. 驱动开发 - WDK 调试及 SVN 环境搭建

    由于从公司辞职了,所以以前在公司里搭建的驱动开发环境也就 Game Over 了, 同样由于那环境是很久以前搭建的,自己也有很多记不清楚的地方了, 而且其中还是有很多需要注意的地方的,所以在这里顺便做 ...

  4. 上海CEC大收购(包括华大九天)

    紫光收购展讯.锐迪科后,上海开始通过扶植CEC培育新势力,CEC已经收购上海澜起,即将收购amlogic.Ominivision,还在与marvell眉来眼去,此外华大九天已经移植上海,加上之前的上海 ...

  5. Keepalived+MySQL双主

    一.Keepalived+MySQL Replication的应用场景 MySQL的高可用方案有cluster,MMM,MHA等,这些高可用方案都要三台服务器以上,成本有点高,今天介绍一个低成本高可用 ...

  6. 近期会放出tlplayer for android的更新版本

    tlplayer for android的一次重大更新在近期将会放出,自从去年初的时候放出tlplayer android版本后,一直都没有更新tlplayer,而tlplayer for windo ...

  7. 同一客户代码下一个CPN对应多个FG会出现CPN描述一样的问题

    Q&A : D2E01客户下已经存在CPN: TP1062/A 对应FG: P5M2812512AFHHF0 直接在客户代码下无法新建,只能在交叉信息新建CPN: TP1062/A, 但无法修 ...

  8. hdu4648Magic Pen 6

    http://acm.hdu.edu.cn/showproblem.php?pid=4648 求连续的一段和对m取余为0  若s[j]和s[i]对M的余数都相同 则相见就满足要求 找个最长的 #inc ...

  9. DedeCms 5.7友情链接模块注入漏洞

    漏洞版本: DedeCms 5.7 漏洞描述: DedeCms基于PHP+MySQL的技术开发,是目前国内应用最广泛的php类CMS系统. DedeCms 5.7前台提交友情链接处,可以插入恶意JS代 ...

  10. windows查看服务端口

    开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选&qu ...