關於PLSQL配置了正確的Oracle客戶端但是不能識別tnsnames.ora問題
阿新 • • 發佈:2019-02-14
場景描述:
在通過安裝Oracle客戶端使用PLSQL的時候發現PLSQL在已經正常配置了Oracle Home和Ocdi library的情況下不能識別tnsnames.ora中的有效配置。
正常安裝Oracle客戶端效果:
PLSQL中關於Oracle Home和Ocdi library的配置:
我的Oracle客戶端安裝位置在:C:\Users\dushangkui\soft\oracle\instantclient_12_2
但是中有合法的配置
LOCALMYDB = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.15.20)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
剛剛在登入框中並不能被展示出來。現在我們來查一下原因。
第一步,通過PLSQL的Help選單下的Support info選單檢視PLSQL載入的配置資訊:
SOFTWARE\ORACLE ORACLE_HOME = C:\Program Files (x86)\Oracle\Instant Client ORACLE_HOME_NAME = OraInstantClient11g NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK NLS_DATE_FORMAT = YYYY-MM-DD NLS_TIMESTAMP_FORMAT = YYYY-MM-DD HH24:MI:SS:FF6 NLS_TIMESTAMP_TZ_FORMAT = YYYY-MM-DD HH:MI:SS.FF TZH:TZM TNS_ADMIN = C:\Program Files (x86)\Oracle\Instant Client\network\admin SOFTWARE\ORACLE\KEY_OraInstantClient11g ORACLE_HOME = C:\Program Files (x86)\Oracle\Instant Client ORACLE_HOME_KEY = SOFTWARE\Wow6432Node\Oracle\KEY_OraInstantClient11g ORACLE_HOME_NAME = OraInstantClient11g ORACLE_BASE = C:\Program Files (x86)\Oracle\Instant Client ORACLE_BUNDLE_NAME = Enterprise ORACLE_GROUP_NAME = Oracle - OraInstantClient11g NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK NLS_DATE_FORMAT = YYYY-MM-DD NLS_TIMESTAMP_FORMAT = YYYY-MM-DD HH24:MI:SS:FF6 NLS_TIMESTAMP_TZ_FORMAT = YYYY-MM-DD HH:MI:SS.FF TZH:TZM TNS_ADMIN = C:\Program Files (x86)\Oracle\Instant Client\network\admin
我們可以看到ORACLE_HOME和ORACLE_BASE\TNS_ADMIN均不是我們剛剛配置的位置。
第二步,檢視登錄檔:ORACLE_HOME_KEY = SOFTWARE\Wow6432Node\Oracle\KEY_OraInstantClient11g我們看到上面的這行影響了配置
我們發現配置表裡面多了這些東西:
經過確認,這是上次安裝刪除後的殘留配置,我們把它刪除掉。
然後我們再看PLSQL的help -> Support Info ->TNS Names
我們可以看到,出現了正常的TNS配置。