第一次安装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 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.58)(PORT = 1521))
)
(CONNECT_DATA =
(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文件中,再次连接,终于成功了!耶~ 呵呵,希望能帮助到所有遇到问题的朋友~