Oracleデータベースがあるとします。ユーザー名= x、パスワード= y、データベース= zです。また、ポート= a、SID = b、ホスト名= cも知っています。
それでは、どうやって正しく接続する必要がありますか?私は次のような多くのオプションを使用しました:
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'
sqlplus (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=c)(PORT=a))(CONNECT_DATA=(SID=b)))
これらのコマンドラインを送信すると、通常、次のようなエラーメッセージが返されます。
ORA-12560:TNS:プロトコルアダプタエラー
ORA-12514:TNS:リスナーは現在サービスを認識していません
よろしくお願いします!!
試しましたか
sqlplus username/password@Host:port/service
sqlplus x/y@c:a/b
sqlplusの最新バージョン(バージョン11以降)はこの構文を理解しているため、tnsnames.oraファイルは必要ありません。
最も簡単なのは、tnsnames.oraファイルを使用してデータベースに接続することです。そのためには、それを編集して新しいエントリを追加します。通常、このファイルは$ Oracle HOME\NETWORK\ADMINディレクトリにあります。
myDb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = c)(Port =a))
)
(CONNECT_DATA =
(SERVICE_NAME =b)
)
)
次に、dbに接続できます。
sqlplus x/y @ myDb
元のポスターに...最初のオプションでは、閉じ括弧がありませんでした
不正解:(あなたの文字列)
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED)))'
正しい:
sqlplus x/y@'(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(Host=c)(PORT=a))(CONNECT_DATA=(SID=z)(SERVER=DEDICATED))))'
Sqlplus行が正しいように見えます。以下を確認してください。
これらすべてがチェックアウトされている場合、タイプミスがないことを確認するために、新しい接続線を作成することができます。
多分あなたのデータベースは稼働していません。マシンが再起動され、インスタンスが自動起動に設定されていない(そして手動で起動されていない)場合は、サービスを自分で起動する必要がある場合があります。
サービス画面にアクセスできる場合は、そこから実行できます。または、コマンドラインから実行することもできます。
コマンドプロンプトに移動し、次のコマンドを入力します。
set Oracle_sid=ORCL
net start oracleserviceORCL
最初はOracle SIDを設定します。 2番目は実際にサービスを開始します。
sqlplusヘルプから抽出:
ネットサービス名またはEasy Connectの形式にすることができます。
@[<net_service_name> | [//]Host[:Port]/<service_name>]