ドメインサーバー名「HBHAWANI」(バージョンOracle 8i)に「HBHAWANI」という名前のデータベースがあります。ここでdblinkを作成しようとすると、エラーが発生します。
Link : "DBLINK_DOMAINSERVERTOUPASS_PP"
Error : ORA-02085: database link DBLINK_DOMAINSERVERTOUPASS_PP connects to Oracle
DBLinkのスクリプトは次のとおりです。
CREATE PUBLIC DATABASE LINK DBLINK_DOMAINSERVERTOUPASS_PP
CONNECT TO UPASS.HBHAWANI
IDENTIFIED BY <PWD>
USING 'UPASS.HBHAWANI';
私はたくさん試しましたが、同じエラーが発生しました。親切にこれに関する提案を提供してください。
おそらくglobal_names
がtrue
に設定されていて、自分の考えに完全に接続していません。 connect to
は、アクセスしたいリモートデータベースのユーザーアカウントであり、identified by
句で指定したパスワードに対応します。 using
はtnsnames.ora
エントリのように見えますが、connect_data
がOracle
のSIDを指しているエントリです。そのエントリを質問に追加すると役立つ場合があります。現在、using
句とconnect to
句の両方でエイリアス名を指定しているようですが、これはおそらく正しくありません。
global_names
をオンにすると、データベースリンク名はリモートデータベース名と一致する必要があります。これは実際の名前であり、指定したエイリアスではありません。これは、データベースリンクnameがOracle
である必要があることを意味します。これは、少し混乱する可能性があります。
データベースレベルでglobal_names
設定をオフにすることもできますが、それは許可されていないか、望ましくない場合があります。これがめったに使用されないリンクである場合は、リンクを使用するクエリの前にalter session set global_names=false
を追加することもできます。ただし、名前の一貫性を保つことは、長期的にはそれほど混乱しないかもしれません。