sql中呼叫dblink引發ORA-01017錯誤

wxjzqym發表於2013-12-17
  今天開發人員在測試庫上執行一條sql時報“ORA-01017:使用者名稱和口令無效;登陸被拒絕”的錯誤,該條sql中包含一個dblink物件。
  我的診斷思路如下:
  1.根據報錯資訊發現時使用者名稱和口令錯誤,於是檢視dblink的定義資訊後,使用定義資訊中的使用者名稱和密碼在目標端資料庫登陸,一切正常。
  2.接著在本地使用sqlplus嘗試連線目標端資料庫,連線字串採用的是easy connect,這裡沒有使用tnsnames的方式是因為dblink當時定義時使用的連線字串就是esy connect方式,連線報錯“ORA-12154:TNS:無法解析指定的連線標示符”的錯誤,解決該錯誤的方法為修改本地sqlnet.ora檔案中的NAMES.DIRECTORY_PATH引數,增加ezconnect選項即可。此時雖然解決了ORA-12154的錯誤,但是ORA-01017的錯誤依舊。
  3. 最後發現測試庫使用的oracle版本為10g,而目標庫是11g,在11g中使用者名稱和密碼是大小寫敏感的,所以真正引起ORA-01017錯誤的原因在這裡,解決方法在測試庫重新建立dblink,並且在輸入使用者名稱和密碼的地方用雙引號引起來以區分大小寫。
   至此,該錯誤解決!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/20801486/viewspace-1063509/,如需轉載,請註明出處,否則將追究法律責任。

相關文章