質問で与えられたエラーメッセージに関連して、このネットワークで同様の questions が尋ねられ、答えられますが、この問題はそれぞれとは少し異なります。
Oracle 12cをubuntuにインストールしました。コマンドプロンプトからsqlplus hr/hr@pdborcl
を使用してhr
ユーザーに正常に接続できます。
Oracle@ubuntu:~$ sqlplus hr/hr@pdborcl
SQL*Plus: Release 12.1.0.2.0 Production on Mon Nov 16 21:57:24 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Last Successful login time: Mon Nov 16 2015 21:24:32 +05:45
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL>show user;
USER is "HR"
ただし、簡単にするためにsqldeveloperを使用しようとしています。次の資格情報を指定すると、sqldeveloperの接続作成オプションで
次のエラーが表示されます。 ORA-12505。 TNS:リスナーは現在、接続記述子で指定されたSIDを認識していません。
ただし、
ユーザー名:sys
パスワード:******
SID:orcl
また、他のすべての資格情報も同じように機能します。
私のtnsname.oraには
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(Host = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
12cのプラグ可能なデータベースに接続するには、サービス名を使用する必要があります。
それはあなたをつまずかせることができるもののほんの1つだと思います! SQL PlusをOKに接続すると、おそらくあなたを投げました。
私も同じ問題を抱えていました。そして、私はそれを[〜#〜] sid [〜#〜]の代わりにSERVICE NAME(エイリアス)を使用して解決しました:
1。 Oracle_HOMEフォルダーからファイルtnsnames.oraを開きます。その場所がわからない場合は、次の手順を実行します
Windows(cmdを開く)
> sqlplus // connect to sqlplus, login as sysdba
as / sysdba
// then type your password that you set in configuration setup step
// next 3 lines used for getting Oracle_HOME
> var OHM varchar2(100);
> EXEC dbms_system.get_env('Oracle_HOME', :OHM);
> PRINT OHM // ---> Oracle_HOME
Linux(ターミナルCtrl + Alt + Tを開く)
echo $Oracle_HOME
tnsnames.oraは[Your_Oracle_HOME]/Network/Adminにあります。エディターで開きます。
2。 tnsnames.oraファイルで、SERVICE_NAMEを含む行を探します
。サービス名を選択し、上記の名前を入力して、テストを成功させます完了しました!
ホスト名にもこのエラーが表示されます:localhostをそこに書き込む代わりに、「コンピューター名」を入力してみてください(例:PC名がUser_PCの場合)それをUser_PCと書き込み、残りはデフォルトのままにします!