首页 > 代码库 > 解决PL/SQL Dev连接Oracle弹出空白提示框

解决PL/SQL Dev连接Oracle弹出空白提示框

第一次安装Oracle,装在虚拟机中,用PL/SQL Dev连接远程数据库的时候老是弹出空白提示框,网上找了很久,解决方法也很多,可是就是没法解决我这种情况的。

没办法,只能自己研究,经过大概一天时间吧,还是搞好了,写个总结。

 

出现这种问题,解决方法大概有这几种:

 

1.权限不够,导致弹出空吧提示框。(直接上链接)

http://jingyan.baidu.com/article/066074d6760959c3c21cb0d6.html

就PL/SQL图标上点右键---属性---兼容性--管理员身份运行此程序的勾打上,即可

 

2.环境变量没设对。

 

①在安装oracle服务器的机器上搜索下列文件,
oci.dll
ocijdbc10.dll(其中10代表oracle版本,若是其他版本,则需要修改之,例如改成ocijdbc9.dll或者ocijdbc11.dll)
ociw32.dll
orannzsbb10.dll(其中10代表oracle服务器版本,若是其他版本,则需要修改之,例如改成orannzsbb9.dll或者orannzsbb11.dll)
oraocci10.dll(其中10代表oracle服务器版本,若是其他版本,则需要修改之,例如改成oraocci9.dll或者oraocci11.dll)
oraociei10.dll(可能服务器没有,如果没有,就不用找了)
sqlnet.ora,tnsnames.ora,classes12.jar,ojdbc14.jar
 
把这些找到的文件复制放到一个文件夹,如 oraclient,将此文件夹复制到客户端机器上。如放置路径为 D:\oraclient
 
②配置tnsnames.ora,修改其中的数据库连接串。
 oracledata =http://www.mamicode.com/
 
   (DESCRIPTION =
 
            (ADDRESS_LIST =
 
              (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))
 
            ) 
 
            (CONNECT_DATA =http://www.mamicode.com/
 
              (SERVICE_NAME = oracledata)
 
            )
 
        )
 其中,oracledata是要连接的服务名;HOST = 192.168.0.58,是服务器IP地址;PORT = 1521是端口号。
 
③添加第一个环境变量,名为TNS_ADMIN,值为tnsnames.ora文件所在路径(如:D:\oraclient,特别是重装后或其它操作,忘了TNS_ADMIN变量,plsql登陆就会报无法解析指定的连接标识符),这是为了能够
 
找到上面说的tnsnames.ora。这步是最重要的。
 
添加第二个环境变量(可有可无):
“NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,(AMERICAN_AMERICA.US7ASCII 是ASCII编码类型,其它类型可自己到服务器看一下或网上查找一下)(本步骤暂时要做对,如果编码不对,会产生乱码)
 
④下载并安装PL SQL Developer配置应用:
打开PL SQL Developer,登入界面点取消,进入后选择菜单栏 tools->preferences->connection
设置:
Oracle Home=D:\oracleclient
OCI library=D:\oracleclient\oci.dll
 
⑤再次打开plsql则会在database中有oracledata 选项输入用户名密码就可以登陆。
 

这几个系统变量很重要,如果设置的不对,PL/SQL读取不到“数据库”和“连接为”。 

参考:http://www.linuxidc.com/Linux/2014-01/94787.htm

 

3.修改时区(多见于绿色版Oracle或者PL/SQL)

 

修改时区     

需要文件(前半部分路劲可能不同,以自己的安装路径为准):
a:D:\oracle\product\10.2.0\db_1\WJLMGQS-PC_WJLMGQS\sysman\config\emd.properties
b:D:\oracle\product\10.2.0\db_1\sysman\config\emd.properties
c:D:\oracle\product\10.2.0\db_1\sysman\admin\supportedtzs.lst

具体操作:
a:打开两个emd.properties文件,定位到文件的最后一行,发现agentTZRegion=GMT
b:打开supportedtzs.lst文件,在其中找到自己定位的时区然后选取参数,
如:agentTZRegion=Asia/Shanghai

 

4.windows的防火墙所致[关闭防火墙测试即可]

5.还可能是监听器服务无法启动,那么需要打开Net Configuration Assistant修复,或者新建监听器服务。

 

我自己尝试了上面所有方法,可还是遇到提示空白窗,真是蛋疼。。最后想,可能是oraclient里面文件不全,通常都应该文件不全或者版本不对导致的。

结果按照网上另一种方法[其实同方法②,只不过到Oracle官网上下载精简的客户端文件instantclient-basic-nt-11.2.0.4.0.zip而已],我把解压的文件

覆盖到oraclient文件中,再次连接,终于成功了!耶~ 呵呵,希望能帮助到所有遇到问题的朋友~