接続文字列を使用してコマンドラインからSQL Plusに接続します


41

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:リスナーは現在サービスを認識していません

事前に感謝します!!


3
適切なホスト/ポートがあると仮定すると、インスタンスが実行されていないか、リスナーに登録されていないように聞こえます。
コリントハート

1
ezconnectの使用:sqlplus x/y@c:a/b
ディーターDHoker

1
レコードについては、引用符で囲むと、少なくとも2番目の例が機能します。like x @ "(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = c)(PORT = a))(CONNECT_DATA =(SID = b)))"
rogerdpack

ウィンドウ-> oracleservicexeウィンドウで-> servicesを開きます。
プラカシュ

回答:


74

試しましたか

sqlplus username/password@host:port/service
sqlplus x/y@c:a/b

最新バージョンのsqlplus(バージョン11以降)はこの構文を理解しているため、tnsnames.oraファイルは必要ありません。


2
それは完璧に動作します
Gajotres

4
どのバージョン?CentOSで動作しませんエラー:ORA-12154:TNS:指定された接続識別子を解決できませんでした
Edmondo1984

デフォルトのポート番号:1521
イヴァンチャウ

4
使用したので、私が代わりにサービスのSIDを持っている「:」代わりのために働いていた「/」を私sqlplusをユーザー名/パスワード@ホスト:ポート:SID
Pratikゴエンカ

1
付属のsqlplusは構文をv11.2.0.1.0サポートしていませんhost:port。そうです11.2.0.4.0、すでにサポートしています...
gavenkoa

12

最も簡単なのは、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


コマンドラインでパスワードを持つ回避するために、ここでコメント内のリンクを参照してください。serverfault.com/a/87038/27813
rogerdpack

7

元のポスターに...最初のオプションでは、閉じ括弧がありませんでした

間違った:(あなたの文字列)

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))))'

2

sqlplus行が正しいように見えます。次を確認してください。

  1. データベースサーバー自体にsysdbaとして接続できます。
  2. データベースサーバー自体に接続しようとしているユーザーとして接続できます。
  3. 接続しようとしているコンピューターからデータベースサーバーにpingを実行できます。
  4. 接続しようとしているコンピューターからリスナーをtnspingできます。

これらすべてをチェックアウトした場合、タイプミスがないことを確認するために、新しい接続ラインを作成することができます。


1

データベースが稼働していない可能性があります。マシンが再起動され、インスタンスが自動起動に設定されていない場合(および手動で起動されていない場合)、自分でサービスを開始する必要があります。

[サービス]画面にアクセスできる場合、そこからアクセスできます。または、コマンドラインから実行できます。

コマンドプロンプトに移動し、次のコマンドを入力します。

set oracle_sid=ORCL

net start oracleserviceORCL

最初はOracle SIDを設定します。2番目は実際にサービスを開始します。


0

sqlplusヘルプから抽出:

Net Service NameまたはEasy Connectの形式にすることができます。

  @[<net_service_name> | [//]Host[:Port]/<service_name>]

-2

リモートデスクトップ接続を行い、コマンドプロンプトを開いてから接続するのが簡単であることがわかりました。

sqlplus sys/YourPassword as sysdba


-3

データベースのサービスを開始する必要があります。これを行うには、[スタート]メニュー-> [実行して開始]に移動し、services.mscそこでデータベースサービスを検索して開始します。その後、動作を開始します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.