web-dev-qa-db-ja.com

ORA-12154 TNS:SQLPLUSで指定された接続識別子を解決できませんでした

私は、Toadを使用してデータベースとデータベースを接続しています。しかし、同じ資格情報で接続しようとすると、次のようなエラーメッセージが表示されます。

ORA-12154 TNS: could not resolve the connect identifier specified  

手順:

  1. 開いたコマンドプロンプト
  2. SQLPLUSのパスに到達する(C:\ programs\Oracle\Ora11g\BIN
  3. C:\ programs\Oracle\Ora11g\BIN\sqlplus username @ schema_name
  4. パスワードを入力する :

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

  5. しかし、私がこれをスキーマの所有者で開くと、私にとってはうまくいきます

  6. C:\ programs\Oracle\Ora11g\BIN\sqlplus schema_name @ schema_name

  7. パスワードを入力する:

  8. に接続されています :......................

したがって、私の質問は、ユーザー名がその特定のスキーマに接続できないのに、そのスキーマの所有者は接続できる理由です。注:Toadではユーザー名でそのスキーマに接続できますが、sqlplusでは接続できません

私のTNSNAME.ORATNS_ADMINフォルダの下にあります

これから私を助けてください。

4
Gaurav Soni

ヒキガエルを通して実際にログインできるのはOracle_HOMEが設定されました。しかし、一度使用しようとすると$Oracle_HOME/bin、ご自宅が正しく設定されていません。

これを解決するには、まずエクスポート$Oracle_HOMEおよび$Oracle_SID試してみてください。問題ないはずです。

2
Nasim

したがって、sqlplus.exeを実行するときに完全なパスを指定する必要はありません。

%TNS_ADMIN%変数を関連フォルダーの完全パスに設定します(C:\programs\Oracle\Ora11g\TNS_ADMIN?)。そうするための指示はグーグル離れています。同時に、%Oracle_HOME%C:\programs\Oracle\Ora11gに設定されていること、および%PATH%C:\programs\Oracle\Ora11g\binが追加されていることを確認してください。

実際に発生している問題は、sqlplusに渡すパラメーターが原因です。

あなたがやってきた:

C:\programs\Oracle\Ora11g\BIN\sqlplus username@schema_name

これは間違っていて、sqlplusによって次のように解釈されます。

C:\programs\Oracle\Ora11g\BIN\sqlplus username@database_name

また、Oracleでは、スキーマの所有者(つまりスキーマ名)はユーザー名です。当然、他のスキーマでDML/DDLを実行するために他のユーザーに権限を与えることができますが、それでも十分な権限を持つユーザーでログインする必要があります。 (alter session set current_schema=blahと同様にプロキシログインが存在しますが、どちらもこの回答の範囲外です)。

4
Philᵀᴹ