web-dev-qa-db-ja.com

SQL * Plusエラー:ORA-12154:TNS:指定された接続識別子を解決できませんでした

リモートデータベースにアクセスするために、Sql * PLUSをクラウドのOracle Linux環境にインストールしました。ここで回答として提供されているインストール手順を使用しました: https://stackoverflow.com/questions/23488394/how-to-install-sql-plus-client-in-linux

接続文字列は正しいが、エラーが発生する

_ERROR: ORA-12154: TNS:could not resolve the connect identifier specified_

_tnsnames.ora_を調べてこの問題を解決しようとしましたが、存在せず、_$Oracle_HOME_に接続されているパスにサブフォルダー "_/network/admin/_"がありませんでした。これを解決するために、両方のフォルダーを作成し、接続文字列を含む新しい_tnsnames.ora_に_admin/_ファイルを作成しました。残念ながら、まだ同じエラーが発生します。

新しい_tnsnames.ora_ファイルのパス:_/usr/lib/Oracle/11.2/client64/network/admin/tnsnames.ora_

参考までに、私の接続文字列は次のように構成されています。

_(DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcp)(Host= asdasdasd.com)(PORT=1524))
    (CONNECT_DATA =
      (SID = AARCER1)
    )
  )
_

そして私が私の端末に入れている私のコマンドは:sqlplus "userName/myPassword@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=asdasdasd.com)(PORT=1524))(CONNECT_DATA=(SID=AARCER1)))"

このエラーを解決するにはどうすればよいですか?

6
beckah

sqlplus userName/myPassword@"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=asdasdasd.com)(PORT=1524))(CONNECT_DATA=(SID=AARCER1)))"を使用する場合、_tnsnames.ora_ファイルは必要ありません。

_tnsnames.ora_ファイルのエントリは次のようになります。

_AARCER1 = (DESCRIPTION=
     (ADDRESS=(PROTOCOL=tcp)(Host= asdasdasd.com)(PORT=1524))
    (CONNECT_DATA =
      (SID = AARCER1)
    )
  )
_

次に、コマンドを_sqlplus userName/myPassword@AARCER1_に短縮できます。これが_tnsnames.ora_の目的です。

_tnsnames.ora_を使用するには、ファイル_sqlnet.ora_も必要です。そこで、次のようなエントリが必要です。

_NAMES.DIRECTORY_PATH = (TNSNAMES)
_

ただし、デフォルト値はNAMES.DIRECTORY_PATH=(tnsnames, ldap, ezconnect)であるため、実際にはスキップできます。

環境変数_TNS_ADMIN_をこれらのファイルの場所に設定します。

_export TNS_ADMIN=/usr/lib/Oracle/11.2/client64/network/admin
_
6

EZ Connectメソッドを使用して、tnsnames.oraファイルを回避することもできます。

sqlplus scott/[email protected]:1524/<service name goes here>

Lsnrctl statusコマンドを実行すると、サービス名を取得できます。

0
Stringer