下面是引用正文
接着上次的话题,在64位win7上装了32位oracle10g 以后又出现了新的问题:
在使用oracle自带的sqlplus连接本机或者远程的oracle实例均能成功过,但使用 PL/SQL Developer (我装的是7.1版本) 连接任何一个实例在登录时均报“ORA-12154: TNS:无法解析指定的连接标识符”错误。
冷静,先分析原因,既然sqlplus已经能够连接,说明oracle的安装(至少客户端的安装)是正常的,TNS的配置是正确的。问题应该出在PL/SQL Developer 自身。考虑到本次安装oracle的过程中有诺干次安装失败且变换过oracle home,是否是注册表中的信息有写垃圾未清理?!进入 PL/SQL Developer 的 preferences中发现可以设定oracle home。该选项为空是自动选择,也可以手工填入路径。但是设置后没有效果。之后又检查了注册表、oracle设置均无异常。
无奈之下选择了重装PL/SQL Developer 。运行安装程序以后弹出一个警告框,这次仔细的看了一下,大概意思是安装目录中含有特殊字符可能导致oracle无法连接。该提示窗口按“确认”按钮后依然会继续安装。恍然大悟啊,64位win7会把32位应用程序默认的安装到Program Files (x86)目录下,那两个括号可能让oracle郁闷了。改变安装路径为一个比较“大众化”的路径,再次进行数据库连接,一切问题都解决了。
经验总结:哥么以后打死也不往默认的32位 program files目录下装东西了
思想上移
上网查了好久才找到这个答案,起初一直是认为oracle安装的问题,和文章的作者一样,开始的时候也是找了很多资料,上网百度了好一阵子。真要从细节方面说的话出现这个问题的原因还是不理解win7的那个programs files(X86)文件夹存在的意义。网上能找到的就只有关于syswow64的介绍,具体的文件夹的作用,以及不安装到相应的文件夹下会出现什么别的问题还有待考察。如果说是为了区分32为和64位程序的话那么如果32位程序不小心安装到别的目录下那么就不应该可以用啊,但是事实证明还是可以正常使用,所以大胆猜测,这个文件夹仅仅用于区分,在程序运行的时候操作系统会自己判断。
文章的作者还是很有水平的,遇到了问题没有一头扎进去而是仔细的分析,将大局把握住了。弄清楚自己所处的环境(64位win7)然后逐步向细节分析(oracle安装,PL/SQL安装,以及他们的安装路径等等细节),最终问题解决。宏观的把握住了,细节方面的都不是大问题,只需要稍微调整就可以。以后遇到问题也应该这样分析,把自己的所处的大环境搞清楚,然后再去分析问题。
谨记!谨记!
总结:在win7(64位)系统中,尽量不要把软件安装到programs files(X86)文件夹中,这样经常出现与oracle10g数据库连不上,例如:(PL/SQLDeveloper和 Powerbuilder9.0和PowerBuilder 12.5)出现此问题,重新安装在其他目录(我安装到D盘)问题就解决了。