SQL*Plusのクイック・スタート

ここでは、SQL*Plusのインストール後、ログインしてデータベースに接続する手順について説明します。インストール中に作成したデフォルトのデータベースに接続したり、他の既存のOracle Databaseにも接続できます。

SQL*Plusのリソース

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、SQLおよびPL/SQLコマンド言語は、データベースの操作経験があるユーザーのニーズに応える十分な機能を備えている一方、Oracle Databaseの初心者にも十分にわかりやすい設計になっています。

SQL*Plus言語は簡単に使用できます。たとえば、LAST_NAMEというラベルが付いた列をヘッダー「Family Name」に変更するには、次のコマンドを入力します。

COLUMN LAST_NAME HEADING 'Family Name'

同様に、EMPLOYEES表の列定義を表示するには、次のコマンドを入力します。

DESCRIBE EMPLOYEES

SQL*Plusの学習方法

SQL*Plusを学習する場合、次のソースが有効です。

  • このマニュアルの第II部の「 SQL*Plusの使用方法

  • SQL*Plusのヘルプ、コマンドライン・ヘルプ

  • Oracle Database 12c: SQL Fundamentals

    オラクル社が開設している、インストラクタが指導を行うコースです。このコースは、包括的な実地コースであり、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コマンドラインのアーキテクチャ

SQL*Plusコマンドラインでは、次の層で構成される2層モデルが使用されます。

  • クライアント(コマンドライン・ユーザー・インタフェース)

  • データベース(Oracle Database)

2つの層が同じコンピュータ上に存在する場合があります。

SQL*Plusクライアント

コマンドライン・ユーザー・インタフェースは、文字ベースの端末環境です。

Oracle Database

Oracle Netコンポーネントによって、SQL*PlusクライアントとOracle Database間の通信が可能です。

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のログイン・ユーザー名およびパスワードを取得します。「ユーザー名およびパスワードのログイン」を参照してください。

  • サンプル・データベースがインストールされていることと、Oracle Databaseのインストール時に必要なログイン・ユーザー名およびパスワードを取得済であることを確認します。サンプル・スキーマおよびSQL*Plusについてを参照してください。

  • インストール時にデフォルトのデータベースを作成するか、接続するOracle Databaseの接続識別子をデータベース管理者から取得します。データベースへの接続についてを参照してください。

  • 接続するデータベースが起動していることを確認します。「STARTUP 」コマンドを参照してください。

SQL*Plus日付書式

SQL*Plusのデフォルトの日付書式は、データベースのNLS_DATE_FORMATパラメータによって決定され、2桁の年号で表示する日付書式を使用することもできます。また、SELECT文の中で、SQLのTO_CHARファンクションまたはSQL*PlusのCOLUMN FORMATコマンドを使用して、レポート内での日付の表示方法を制御できます。

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を起動し、デフォルトのデータベースに接続する手順

  1. UNIX端末またはWindows端末を起動し、次のSQL*Plusコマンドを入力します。
    sqlplus
  2. プロンプトが表示された場合、Oracle Databaseのユーザー名およびパスワードを入力します。Oracle Databaseのユーザー名およびパスワードが不明な場合は、データベース管理者に問い合せてください。
  3. または、次の形式でSQL*Plusコマンドを入力します。
    sqlplus username

    パスワードを入力するように求められます。

  4. SQL*Plusが起動し、デフォルトのデータベースに接続します。

    これで、「SQL>」プロンプトで、SQL、PL/SQLおよびSQL*Plusの文やコマンドを入力して実行できるようになります。

例 - SQL*Plusを起動し、デフォルト以外のデータベースに接続する手順

UNIX端末またはWindows端末を起動し、次のSQL*Plusコマンドを入力します。

sqlplus username@connect_identifier

パスワードを入力するように求められます。

SQL*Plus Instant Clientの起動について

SQL*Plus Instant Clientは、SQL*Plusコマンドラインです。Oracle Databaseをインストールする必要はありません。使用方法については、「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にはサンプル・スキーマが含まれています。このマニュアルの例には、人事管理(HR)サンプル・スキーマのEMP_DETAILS_VIEWビューを使用します。このスキーマには、架空の会社の人事記録が含まれています。EMP_DETAILS_VIEWビューの列の詳細を表示するには、次のように入力します。

DESCRIBE EMP_DETAILS_VIEW

サンプル・スキーマの詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。

サンプル表のロック解除

人事管理(HR)サンプル・スキーマは、デフォルトでOracle Databaseインストールの一部としてインストールされます。デフォルトでは、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

コマンドラインのSQL*PlusからHR表を作成するには、次の手順に従います。

  1. Oracle Databaseアカウントのユーザー名およびパスワードについてDBAに問い合せます。
  2. SQL*Plusにログインします。
  3. UNIXの場合、SQL*Plusプロンプトで次のコマンドを入力します。
    SQL> @?/DEMO/SCHEMA/HUMAN_RESOURCES/HR_MAIN.SQL

    Windowsの場合、SQL*Plusプロンプトで次のコマンドを入力します。

    SQL> @?\DEMO\SCHEMA\HUMAN_RESOURCES\HR_MAIN.SQL

サンプル表を削除するには、HR_MAIN.SQLをHR_DROP.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%';

これによって、次の出力が表示されます。

SQL*Plusの終了について

SQL*Plusコマンドラインを終了するには、EXITを入力します。