目次
SQL*Plusを起動・接続
SQL*Plusへ接続するために、まずはSQL*Plusを起動しましょう。
SQL*Plusを起動するには「コマンド・プロンプト」を起動します。
環境変数を設定していない場合は、オペレーティング・システムの環境変数を構成する必要があります。
詳しくは次のサイトで確認してみてください。
コマンド・プロンプトを起動したら、次のようにコマンドを入力します。
sqlplus {ユーザーID}/{パスワード} sqlplus user01/pass01
SQL*Plusの起動は、Windowsの「スタート」メニューからも可能です。
オペレーティング・システムの環境変数が構成されていること前提ですが、次の手順で起動できます。
「スタート」から「プログラム(すべてのプログラム)」 > 「Oracle – HOME_NAME」 > 「Application Development」 > 「SQL*Plus」を選びます。
コマンド・プロンプトが起動したら先ほどの説明通り、sqlplusコマンド、ユーザーID、パスワードを入力しましょう。
ユーザー名とパスワードについて
SQL*Plusを起動する際に、Oracle Databaseスキーマへログインするにはユーザー名とパスワードが必要です。
入力したユーザー名とパスワードによって、Oracle Databaseスキーマで認証されたユーザーであると識別されます。
そのためDBA(データベース管理者)は、ユーザーに必要な権限を付与し、データベース・アカウントを作成しましょう。
Oracle Databaseをインストールする際には「デフォルト・ログイン」が作成され、対応するパスワードの入力を求めるプロンプトが表示されます。
デフォルト・ログインのユーザー名には、次のものがあるので覚えておくとよいでしょう。
- SYS
- SYSTEM
- HR
Oracle Databaseのインストールができると、デフォルト・ログインのユーザーが作成された旨が表示されます。
SQL*Plusへ接続の確認方法
ここでは、SQL*Plusへ接続ができているか確認する方法を紹介します。
「SQL*Plusを起動・接続」で紹介した方法で、SQL*Plusへ接続しましょう。
Oracle Databaseに、ユーザーが「user01」として接続できるかを確認します。
SQL> CONNECT user01/pass01
入力後に「Connected.」の表示があれば接続成功です。
確認としてひとつテーブルを作成してみましょう。
SQL> CREATE TABLE sample_tb (id NUMBER NOT NULL);
「Table created.」と表示されれば、テーブル作成の成功です。
このテーブルを使う予定はないので、ついでに削除もしておきましょう。
SQL> DROP TABLE sample_tb;
「Table dropped.」と表示されれば、テーブル削除の成功です。
SQL*Plusコマンドラインの終了・切断
SQL*Plusコマンドラインの終了・切断するには、コマンド・プロンプトから「EXIT」を入力します。
EXITは「EXIT COMMIT」と同義なので、SQL*Plusコマンドラインの終了時にCOMMIT処理が行われます。
EXIT以外にも、「QUIT」を入力することで終了もできます。
EXITとQUITに機能的な差はないので、好きなほうでSQL*Plusコマンドラインを終了しましょう。
EXITもしくはQUITのオプションに「ROLLBACK」を指定することで、現行トランザクションがロールバックされて終了します。
EXIT ROLLBACK QUIT ROLLBACK
ロールバックして終了したい場合は、こちらのコマンドを使ってください。
また、SQL*Plus は終了せず”ユーザーの接続のみ”をログオフしたい場合には、「DISCONNECT」を使用できます。
ログオフ・ログアウトしたい場合は、こちらのコマンドを利用しましょう。
リモートマシンからSQL*Plusを起動
リモートマシン(リモートクライアント)から SQL*Plusを起動・接続するには、 Oracle クライアント・ソフトウェア相当が必要になります。
データベースサーバー・ソフトウェアには、Oracle クライアント・ソフトウェアがすでに組み込まれているためインストールは不要です。
リモートマシンからネットを介してデータベースサーバーへ接続するには、ローカル接続とは異なり「Oracle Net Service」を経由して接続を行います。
Oracle 10gで用意している簡易接続ネーミングを使って接続するには、次のフォーマットでSQL*Plusを起動します。
sqlplus user_name/password@host[:port][/service_name]
この場合、ネットサービスの定義ファイルなどの事前準備は必要ありません。
ただし、事前準備が必要ないのはインストール時に「EZCONNECT」が有効の場合です。
もし利用できない場合には、 Net Manage ユーティリティのプロファイル/ネーミングで「簡易接続ネーミング:EZCONNECT」が有効かを確認する必要があります。
ローカル・ネーミングを使ってSQL*Plusを起動するには、ネットサービス名が必要です。
sqlplus user_name/password@service_name
ネットサービス名は、「tnsnames.ora」のデータベースとの接続文字列を管理した定義ファイルに格納されています。
詳しくは「SQL*Plusに接続するネット・サービス名について」で後述します。
SQL*Plusに接続文字列以外で接続する方法
SQL*Plusに接続する際に、通常は接続文字列で接続します。
しかし、接続文字列以外にも「IP」や「SID(インスタンス識別子)」で接続も可能です。
IP・SIDで接続する場合は、次の構文で入力します。
sqlplus <ID>/<パスワード>@<IP or ホスト名>:<ポート番号>/<SID>
ポート番号は通常であれば「1521」になります。
例えば、次のようなデータベースに接続するとしましょう。
IP | 192.168.1.10 |
ポート番号 | 1521 |
SID | sample_db |
ユーザー名 | user01 |
パスワード | pass01 |
上記のデータベースに接続するには、次のように入力します。
sqlplus user01/pass01@192.168.1.10:1521/samole_db
SQL*Plusに接続するネット・サービス名について
DBAは、利用用途ごとに使うデータベースを作成し、作成したデータベースのネット・サービス名を「tnsnames.oraファイル」に定義します。
tnsnames.oraファイルへネット・サービス名を定義するには、次のように記述します。
net_service_name= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=port) ) (CONNECT_DATA= (SERVICE_NAME=service_name) ) )
定義したネット・サービス名を使うには、SQL*Plusを実行しているパソコンのtnsnames.oraファイルに、service_nameのエントリが存在していることが必要です。
ただし、接続識別子を使う場合は、tnsnames.oraファイルにエントリが存在していなくても問題ありません。
ネット・サービス名を定義するサンプルは次の通りです。
SAMPLE1 = (DESCRIPTION = (ADDRESS=(PROTOCOL=tcp)(HOST=sample-server)(PORT=1521) ) (CONNECT_DATA= (SERVICE_NAME=sample.com) ) )
SQL*Plusプログラムの構文について
SQL*Plusコマンドラインを起動したい場合は、オペレーティング・システムのコマンド・プロンプトでSQLPLUSコマンドを使います。
SQLPLUS [ [Options] [Logon|/NOLOG] [Start] ]
例えば、SQLPLUSコマンドのオプションの構文(Optionsの構文)は次のようになります。
-H[ELP]|-V[ERSION] |[[-C[OMPATIBILITY] {x.y[.z]] [-L[OGON]] [-M[ARKUP] markup_option] [-NOLOGINTIME] [-R[ESTRICT] {1|2|3}] [-S[ILENT]] ]
Logonの構文は、次のようになります。
{username[/password][@connect_identifier]| / } [AS {SYSASM|SYSBACKUP|SYSDBA|SYSDG|SYSOPER|SYSKM}][edition=value] [AS {SYSASM|SYSBACKUP|SYSDBA|SYSDG|SYSOPER|SYSRAC|SYSKM}][edition=value]
まとめ
SQL*Plusへの接続方法や終了方法、リモートマシンからの接続方法などをまとめました。
SQL*Plusへの接続方法にはさまざまなやり方があります。
ぜひ、利用用途に合わせた接続をこの記事を参考に行ってみてください。