SQL*Plusの概要
ここでは、SQL*Plusのインストール後、ログインしてデータベースに接続する手順について説明します。インストール中に作成したデフォルトのデータベースに接続したり、他の既存のOracle Databaseにも接続できます。
SQL*Plus概要
SQL*Plusは、Oracle Databaseのインストール時にインストールされる対話型のバッチ問合せツールです。コマンドライン・ユーザー・インタフェースがあります。
また、SQL*Plus Instant Clientもあります。これは、OCI Instant Client対応のプラットフォームで使用できるスタンドアロン・コマンドライン・インタフェースです。SQL*Plus Instant Clientは使用可能なすべてのOracle Databaseに接続されますが、専用のOracle Databaseをインストールする必要はありません。OCI Instant Clientの詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』を参照してください。
SQL*Plusには専用のコマンドおよび環境があり、Oracle Databaseへのアクセスを提供します。SQL、PL/SQL、SQL*Plusおよびオペレーティング・システム・コマンドを入力すると、次のことを実行できます。
-
問合せ結果の書式設定、計算の実行、格納および印刷
-
表定義およびオブジェクト定義の検証
-
バッチ・スクリプトの開発および実行
-
データベースの管理
SQL*Plusを使用して、対話的なレポート生成、バッチ処理としてのレポート生成、およびテキスト・ファイル、スクリーンまたはインターネットでの閲覧用のHTMLファイルへの結果の出力が可能です。SQL*PlusのHTML出力機能を使用して、動的にレポートを生成できます。
SQL*Plusの学習方法
SQL*Plusを学習する場合、次のソースが有効です。
-
このマニュアルの第II部の「 SQL*Plusの使用方法 」
-
SQL*Plusのヘルプ、コマンドライン・ヘルプ
-
Oracle Database 12c: SQL基礎
オラクル社が開設している、インストラクタが指導を行うコースです。このコースは、包括的な実地コースであり、SQL*Plusを使用してOracle Databaseへアクセスする方法を学習します。
-
その他のOracle Database 12cトレーニング
オラクル社のその他のコースについては、
http://www.oracle.com/education
を参照してください。
このマニュアルの使用方法
このマニュアルでは、SQL*Plusについて、すべてのオペレーティング・システムに共通する情報を説明します。また、WindowsおよびUNIXに固有の情報も示します。SQL*Plusのいくつかの点は、オペレーティング・システムごとに異なる場合があります。オペレーティング・システム固有の情報については、ご使用のシステムのOracle Databaseのインストレーション・ガイドを参照してください。これらのオペレーティング・システム固有のガイドを、この『SQL*Plusユーザーズ・ガイドおよびリファレンス』とともに使用してください。
コマンドの入力方法を示す例では、このマニュアルの全編を通じて共通のコマンド構文および共通のサンプル表セットを使用しています。表については、サンプル・スキーマおよびSQL*Plusについてを参照してください。
認定
SQL*Plusは、オペレーティング・システム固有のOracle Databaseドキュメントに記載されているオペレーティング・システムで動作保証されています。
SQL*Plusは、サポートされているすべてのOracle DatabaseおよびOracle Serverで動作保証されています。
SQL*Plusの前提条件
SQL*Plusは、Oracle Databaseのコンポーネントです。SQL*Plusは、Oracle Databaseのインストール時にデフォルトでインストールされます。
Oracle DatabaseおよびSQL*Plusには、コンピュータおよびオペレーティング・システムによって異なる点があります。これらの相違点の詳細は、SQL*Plusでサポートされているオペレーティング・システムに固有のOracle Databaseのインストレーション・ガイドを参照してください。
SQL*Plusを実行する前に、次の準備が必要です。
-
Oracle DatabaseまたはOracle Clientをインストールします。
http://www.oracle.com/technetwork/
から、ご使用のオペレーティング・システムのOracle Databaseのインストレーション・ガイドを参照してください。 -
インストール中に、またはデータベース管理者から、Oracle Databaseのログイン・ユーザー名およびパスワードを取得します。「ユーザー名およびパスワードのログイン」を参照してください。
-
サンプル・データベースがインストールされていることと、そのログイン・ユーザー名およびパスワードがあることを確認してください。サンプル・スキーマおよびSQL*Plusについてを参照してください。
-
インストール時にデフォルトのデータベースを作成するか、接続するOracle Databaseの接続識別子をデータベース管理者から取得します。データベースへの接続についてを参照してください。
-
接続するデータベースが起動していることを確認します。「STARTUP 」コマンドを参照してください。
SQL*Plusコマンドラインの起動
通常、SQL*Plusの実行可能ファイルは$ORACLE_HOME/binにインストールされます。通常、このディレクトリは、ご使用のオペレーティング・システムの環境変数PATHに含まれます。SQL*Plusを起動するには、$ORACLE_HOME/binディレクトリに移動する必要があります。
次の各例では、データベース・アカウントのパスワードを入力するように求められます。
簡単な接続識別子を使用して、mymachineで実行されているMYDBデータベース内のHRスキーマに接続する例は、次のとおりです。
sqlplus hr@\"//mymachine.mydomain:port/MYDB\"
ネット・サービス名を使用する例は、次のとおりです。
sqlplus hr@MYDB
ネット・サービス名は、Oracle Namesなどいくつかの場所に格納できます。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
ローカルのOracle Net tnsnames.oraファイル内に構成されたネット・サービス名を使用する場合は、tnsnames.oraファイルを含むディレクトリに環境変数TNS_ADMINを設定します。たとえば、UNIXで、/home/user1内にあるtnsnames.oraファイルによってネット・サービス名MYDB2が定義されている場合は、次のように設定します。
TNS_ADMIN=/home/user1 export TNS_ADMIN sqlplus hr@MYDB2
この例は、環境変数ORACLE_HOMEが設定されていて$ORACLE_HOME/network/admin/tnsnames.oraまたはORACLE_HOME\network\admin\tnsnames.oraファイルによってネット・サービス名MYDB3が定義されていることを前提としています。
sqlplus hr@MYDB3
環境変数TWO_TASK(UNIXの場合)またはLOCAL(Windowsの場合)には接続識別子を設定できます。これによって、SQL*PlusまたはSQL*Plus Instant Clientで接続が行われるたびに接続識別子を明示的に入力する必要がなくなります。このUNIXの例では、MYDB4という名前のデータベースに接続します。
TNS_ADMIN=/home/user1 export TNS_ADMIN TWO_TASK=MYDB4 export TWO_TASK sqlplus hr
SQL*Plusを起動し、デフォルトのデータベースに接続する手順
例 - SQL*Plusを起動し、デフォルト以外のデータベースに接続する手順
UNIX端末またはWindows端末を起動し、次のSQL*Plusコマンドを入力します。
sqlplus username@connect_identifier
パスワードを入力するように求められます。
Oracle Instant ClientパッケージからのSQL*Plusの使用
SQL*Plusは、Oracle Instant Clientパッケージからインストールできます。使用方法については、「SQL*Plusコマンドラインの起動」を参照してください。
SQL*Plus Instant Clientは、データベースを含まないため、すべてのデータベース・サーバーから常にリモートの状態になります。データベースに接続するには、Oracle Net接続識別子を使用して、データベースを指定する必要があります。
TNS_ADMINが設定されていない場合は、オペレーティング・システム依存のディレクトリ内でtnsnames.oraが検索されます。この検索パスにはnetwork/admin/tnsnames.oraも含まれ、環境変数ORACLE_HOMEで指定されているディレクトリ内も検索されます。環境変数ORACLE_HOMEは、このためにのみ、SQL*Plus Instant Clientに設定します。Instant Clientアプリケーションの実行時にORACLE_HOMEを設定する場合は、既存のディレクトリに設定する必要があります。
他のデータベースへの接続について
既存のコマンドライン・セッションから、次の形式でCONNECTコマンドを入力します。
SQL> connect username@connect_identifier
パスワードを入力するように求められます。
サンプル・スキーマおよびSQL*Plusについて
サンプル・スキーマはOracle Databaseに含まれなくなりました。Oracle Database 21c以降では、GitHubリポジトリからサンプル・スキーマをダウンロードする必要があります。このマニュアルの例には、人事管理(HR)サンプル・スキーマのEMP_DETAILS_VIEWビューを使用します。このスキーマには、架空の会社の人事記録が含まれています。EMP_DETAILS_VIEWビューの列の詳細を表示するには、次のように入力します。
DESCRIBE EMP_DETAILS_VIEW
サンプル・スキーマの詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。
サンプル表のロック解除
人事管理(HR)サンプル・スキーマは、デフォルトのOracle Databaseインストールの一部としてインストールされません。Oracle Database 21c以降では、GitHubリポジトリからサンプル・スキーマをダウンロードする必要があります。デフォルトでは、HRアカウントはロックされています。
HRサンプル・スキーマを使用するには、HRアカウントのロックを解除する必要があります。HRアカウントのロックを解除するには、SYSTEMユーザーとしてログインしてから次のコマンドを入力します。your_passwordは、ユーザーHRに対して定義するパスワードです。
ALTER USER HR IDENTIFIED BY your_password ACCOUNT UNLOCK;
HRアカウントのロック解除の詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。HRユーザーは、主にHRサンプル・スキーマへのアクセスを可能にします。また、このマニュアルの例を実行するために必要です。
データベース内のそれぞれの表は、特定のユーザーによって所有されています。このガイドの例を試すときに、サンプル表を独自にコピーして使用することもできます。HR表を独自にコピーする場合は、DBAに連絡するか、または『Oracle Databaseサンプル・スキーマ』を参照してください。また、UNIXの場合は、次のディレクトリにあるHR_MAIN.SQLスクリプトを使用しても、HR表を作成できます。
$ORACLE_HOME/demo/schema/human_resources/hr_main.sql
Windowsの場合は、次のディレクトリにあります。
ORACLE_HOME\DEMO\SCHEMA\HUMAN_RESOURCES\HR_MAIN.SQL
最初の問合せの実行
データベース・オブジェクト(たとえば、EMP_DETAILS_VIEWの列の詳細)を表示するには、次のようにDESCRIBEコマンドを入力します。
DESCRIBE EMP_DETAILS_VIEW
これによって、次の出力が表示されます。
列ヘッダーの名前を変更して、HRサンプル・スキーマ・ビューEMP_DETAILS_VIEWからデータを選択するには、次のように入力します。
COLUMN FIRST_NAME HEADING "First Name" COLUMN LAST_NAME HEADING "Family Name" SELECT FIRST_NAME, LAST_NAME FROM EMP_DETAILS_VIEW WHERE LAST_NAME LIKE 'K%';
これによって、次の出力が表示されます。