Oracle建立dblink報錯:ORA-01017、ORA-02063解決

無名_四葉草發表於2020-04-05

轉自:http://oracle.chinaitlab.com/induction/915197.html 

一、建立dblink 原始語句:

  create public database link db_lsxy

  connect to lsxy  identified by lsxy

  using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.xxx.xxx.xxx)(PORT = 2261)))(CONNECT_DATA = (SERVICE_NAME = serName)))';

  注意:這裡使用者密碼都是小寫的。

  二、建立dblink 後使用時提示如下錯誤:

  ORA-01017: invalid username/password; logon denied

  ORA-02063: preceding line from <link_name>

  三、問題分析:

  根據ORA-01017的提示是連線到另一方的使用者密碼錯誤,於是直接使用配置的使用者密碼(lsxy/lsxy)登入資料庫發現正常登入,進一步的檢視建立好後的dblink 語句,其中使用者名稱都轉化為了大寫,由此猜測密碼是否也被轉化為了大寫從而導致密碼錯誤。

  根據猜測百度了下,確實有這種情況。當9i或10g的版本的Oracle資料庫連線11g的版本時,會自動將密碼轉化為大寫。

  四、解決辦法:

  (方法1、如果11g的資料庫使用者的密碼是小寫字母,將其改成大寫,然後再去用9i去連線,這個方法太過粗鄙影響也比較大不考慮使用。

  (方法2、將密碼用雙引號引起來。如 identified by "jxunicom_sale"

  採用方法2,我們將dblink 的建立語句稍微改寫即可,如下:

  create public database link DB_LSXY

  connect to lsxy  identified by "lsxy"

  using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.xxx.xxx.xxx)(PORT = 2261)))(CONNECT_DATA = (SERVICE_NAME = serName)))';

相關文章