简述原理:
当连接时,通过tnsnames.ora去查找SID,判断于代码中传入SID是否有匹配的。
出现问题1,在tnsnames.ora设置完后,发现还是出现找不到服务名的错误,为什么?
答:环境变量问题,代码查找路径是可以判断是 /network/admin/tnsnames.ora下面,但前部分路径是靠环境变量来指定。linux默认的环境变量可以通过env来查看。
当所有环境变量+/network/admin/tnsnames.ora都是错误路径后,就会出现上述错误。
办法就是添加oralce安装路径,就是前半段作为环境并且export.再reboot系统。通过env来查看是否设置成功。
再用sqlplus连接来测试:
sqlplus64 /nolog
conn user/PW@SID //后面可以加"as sysdba| as sysoper"这些都是管理员权限,所以一般用户都不加
connnected //表示连接成功