ヘッダーをスキップ

Oracle Database Application Expressユーザーズ・ガイド リリース 3.0 E05267-02 |
| 目次 | 索引

前へ | 次へ |

# 19 SQLコマンドの使用

このセクションでは、SQLコマンドを使用してSQLコマンドを作成、編集、表示、実行および削除する方法について説明します。

このセクションの内容は次のとおりです。

- 「SQLコマンド」の概要

- 「SQLコマンド」へのアクセス

- 「SQLコマンド」ホームページについて

- コマンド・エディタの使用

- SQLコマンドの保存

- コマンドのコピー

- 保存されたコマンドの使用

- SQLコマンド履歴の使用

- 結果の表示

- 実行計画の使用

参照: SQL文およびその他のSQLの詳細（演算子、ファンクションおよび書式モデルなど）は、『Oracle Database SQL言語リファレンス』を参照してください SQLの概念については、『Oracle Database概要』を参照してください SQL*Plus（OracleバージョンのSQL）の詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください この章の例で使用されている`HR`サンプル・スキーマの詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください

## 「SQLコマンド」の概要

SQLコマンドを作成、編集、表示、実行および削除するには、「SQLコマンド」を使用します。SQLコマンドには、SQL文またはPL/SQLブロックを含めることができます。

「SQLコマンド」を使用する場合は、次の点に注意してください。

- クエリー・ビルダーで作成したSQLコマンドは、「SQLコマンド」でアクセスできます。

- 保存されたSQLコマンドには、指定された作業領域内で一意の名前が付いている必要があります。

- 「SQLコマンド」と「SQLスクリプト」の間の対話はありません。

- 「SQLコマンド」からSQLコマンドをカット・アンド・ペーストしてSQLスクリプト・エディタで実行できます。

参照: 「SQLスクリプトの使用」

## 「SQLコマンド」へのアクセス

「SQLコマンド」にアクセスするには、次のステップを実行します。

1. 作業領域のホームページにログインします。

   作業領域のホームページが表示されます。

2. 「SQLコマンド」ホームページを表示するには、次のいずれかのステップを実行します。

   - 「SQLワークショップ」、「SQLコマンド」の順にクリックし、「SQLコマンド」ホームページにドリルダウンします。

   - 「SQLワークショップ」アイコンの右側にある下矢印をクリックしてドロップ・ダウン・メニューを表示します。次に、「SQLコマンド」メニュー・オプションを選択します。

   sql_commands.gifの説明

   注意: 一貫性を保つため、このドキュメントでは、ナビゲーションを説明する際にプライマリ・ナビゲーション・パス（ドリルダウン方式）を使用します。

## 「SQLコマンド」ホームページについて

「SQLコマンド」ホームページはコマンド・エディタおよび表示ペインの2つのセクションに分かれます。コマンド・エディタを使用するとSQLコマンドが実行され、表示ペインには出力、保存されたコマンドのリストおよび履歴リストが表示されます。

sql_com_top.gifの説明

「SQLコマンド」ホームページの上部にはコマンド・エディタおよび次のコントロールがあります。

- 自動コミット: 「自動コミット」チェック・ボックスが利用可能な場合は、このチェック・ボックスをクリックして自動コミットを有効化し、トランザクション・コマンドを無効化します。「「SQLコマンド」のトランザクションの概要」を参照してください。

- 表示: 「表示」リストから、一度に表示する出力の行数（最大100,000行）を選択して指定します。「表示」リストの設定に関係なく、DBMS出力のすべての行が表示されます。

- 「コマンドのクリア」アイコン: 「コマンドのクリア」アイコンは消しゴム付きの鉛筆の形をしています。このアイコンを使用するとコマンド・エディタ内のテキストがクリアされます。

- 「表の検索」アイコン: 「表の検索」アイコンは懐中電灯の形をしています。このアイコンをクリックすると表およびビューが表示されます。「「表の検索」アイコンの使用」を参照してください。

- 保存: 「保存」ボタンをクリックするとコマンド・エディタのコンテンツ、またはファイルで現在ハイライトされているコンテンツが保存されます。「保存されたSQL」リストに新しいコマンドが表示されます。「SQLコマンドの保存」を参照してください。

- 実行: 「実行」ボタンをクリックすると（または［Ctrl］キーを押しながら［Enter］キーを押すと）、コマンド・エディタ内のコマンド、または現在コマンド・エディタでハイライトされているコマンドが実行されます。「SQLコマンドの実行」を参照してください。

参照: 「コマンド・エディタの使用」

スキーマの選択

スキーマはデータベース・オブジェクトの論理的なコンテナです。別のスキーマのオブジェクトにアクセスするには、ページの右上にある「スキーマ」リストから選択します。

別のSQLワークショップ・コンポーネントへの切替え

ページの右上にある「コンポーネント」リストから次のいずれかを選択して、別のSQLワークショップ・コンポーネントにナビゲートできます。

- オブジェクト・ブラウザ: 「オブジェクト・ブラウザを使用したデータベース・オブジェクトの管理」を参照してください。

- SQLコマンド: 「SQLコマンドの使用」を参照してください。

- SQLスクリプト: 「SQLスクリプトの使用」を参照してください。

- クエリー・ビルダー: 「クエリー・ビルダーを使用した問合せの構築」を参照してください。

「表示」ペインの概要

「SQLコマンド」ホームページの下部に「表示」ペインが表示されます。

sql_com_bottom.gifの説明

「表示」ペインには次の5つのタブがあります。

- 結果: 「結果」タブをクリックして、最後に正常に実行されたSQLコマンドからの結果を表示します。表示された結果の下部にある「DBMS出力」をクリックして、DBMS出力の行を表示します。このコントロールは、表示するDBMS出力がある場合にのみ表示されます。「ダウンロード」をクリックして、結果をローカル・ファイル・システムのカンマ区切りファイルにエクスポートします。「結果の表示」を参照してください。

- 実行計画: 「実行計画」タブをクリックして、オプティマイザで使用される実行計画を調べ、データベースに変更を加える文がないかどうかを確認します。出力内のオブジェクトはオブジェクト・ブラウザにリンクされています。リンクされたオブジェクトをクリックして、そのオブジェクトのプロパティをオブジェクト・ブラウザに表示します。「実行計画の使用」を参照してください。

- 説明: 「説明」タブで、Describe object_nameと入力して「実行」をクリックし、表またはビューの列定義を表示するか、あるいはファンクションまたはプロシージャの仕様を表示します。「説明」に表示されたリンクを選択して、その情報をコマンド・エディタに書き込みます。たとえば、owner.tableを追加するには表名を、列名を追加するには列名を、パラメータを持つオブジェクト・コールを追加するにはプロシージャ名またはファンクション名を、パッケージ・コールを追加するにはパッケージ名をクリックします。

- 保存されたSQL: 「保存されたSQL」タブをクリックして、現行の作業領域に保存されたすべてのSQLコマンドのリストを表示します。コマンドのタイトルをクリックして、そのコマンドをコマンド・エディタにロードします。「保存されたコマンドの使用」を参照してください

- 履歴: 「履歴」タブをクリックして、最近実行されたコマンドのリストを表示します。最後に実行された200のコマンドが保存されています。「SQLコマンド履歴の使用」を参照してください。

## コマンド・エディタの使用

SQLコマンドのコマンド・エディタを使用して、Application Express内でSQLコマンドを実行します。

このセクションの構成は次のとおりです。

- SQLコマンドの実行

- 「SQLコマンド」のトランザクションについて

- サポートされていないSQL*Plusコマンドについて

- コマンドの終了について

- バインド変数の使用

### SQLコマンドの実行

SQLコマンドを実行するには、次のステップを実行します。

1. 作業領域のホームページで「SQLワークショップ」、「SQLコマンド」の順にクリックします。

   SQLコマンド・ページが表示されます。

2. 実行するSQLコマンドをコマンド・エディタに入力します。

3. 「実行」（[Ctrl]+[Enter]）をクリックして、コマンドを実行します。

   ヒント: 特定の文を実行する場合は、実行する文を選択して「実行」をクリックします。

   「結果」ペインに結果が表示されます。

4. 結果レポートをカンマ区切り（.csv）ファイルとしてエクスポートするには、「ダウンロード」リンクをクリックしてください。

参照: 「結果の表示」

### SQLコマンドのトランザクションについて

「SQLコマンド」でトランザクションSQLコマンドを無効にするには、「自動コミット」チェック・ボックスを選択します。トランザクション・モードが無効になっている場合にCOMMIT、ROLLBACKなどのトランザクションSQLコマンドを使用しようとすると、エラー・メッセージが戻されます。

トランザクションSQLコマンドを有効にするには、「自動コミット」チェック・ボックスを選択解除します。Oracle Application Expressは、トランザクション・モードに入る前に、必要なシステム・リソースが使用可能であることを確認します。リソースが使用できない場合は、エラー・メッセージが表示されます。

トランザクション・モードは、更新の実行、確認するデータの選択、COMMITまたはROLLBACKの変更などを行うことができるステートフルなトランザクション・モードです。このモードは、DBMS_JOBSを使用して実装されます。

トランザクション・モードの次の動作を考慮してください。

- 明示的なCOMMITコマンドを入力するまで操作はデータベースにコミットされません。

- カレント・トランザクションは、「SQLコマンド」を終了すると終了し、ロールバックされます。

- カレント・トランザクションは、セッション・タイムアウトにより終了し、ロールバックされます。

  環境設定（`「SQLコマンドの最大停止時間」`）で非アクティブ・セッションがタイムアウトするまでの時間が設定されることに注意してください。デフォルトのタイムアウトは60秒です。「SQLワークショップの構成」を参照してください。

- 「CSVのエクスポート」オプションは使用できません。

### サポートされていないSQL*Plusコマンドについて

SQLコマンドではSQL*Plusコマンドをサポートしていません。`SET ECHO`や`DEFINE`などのSQLコマンドラインのコマンドをSQLコマンドに入力しようとすると、エラー・メッセージが表示されます。

### コマンドの終了について

「SQLコマンド」では、セミコロン（;）またはスラッシュ（/）を使用するか、あるいは何も付けずにコマンドを終了できます。次に、有効な選択肢を示します。

    SELECT * from emp;

    SELECT * from emp
    /

    SELECT * from emp

最初の例ではセミコロン（;）、2番目の例ではスラッシュ（/）を使用しています。最後の例では、終了記号が付いていないコマンドを示しています。

### バインド変数の使用

バインド変数がサポートされています。コマンドの実行時に、バインド変数の値を入力するよう求められます。バインド変数の前にはコロンを付けます。

次に例を示します。

    SELECT * from emp where deptno = :dept

以前のバージョンのOracle Application Expressでは、次のコマンドを実行して作業領域IDを確認できました。

    SELECT :WORKSPACE_ID FROM dual

このリリースでは、次のSQLコマンドを実行して作業領域IDを確認します。

    SELECT v('WORKSPACE_ID') FROM dual

## SQLコマンドの保存

「SQLコマンド」で入力したコマンドを保存できます。

SQLコマンドを保存するには、次のステップを実行します。

1. 作業領域のホームページで「SQLワークショップ」、「SQLコマンド」の順にクリックします。

   SQLコマンド・ページが表示されます。

2. コマンド・エディタにコマンドを入力します。

3. 「保存」をクリックして、コマンドを保存します。

   コマンドの名前と説明を入力するよう求められます。

4. 「保存」をクリックするか、または「取消」をクリックして保存せずにコマンド・エディタに戻ります。

   保存されたコマンドが表示領域に表示されます。

## コマンドのコピー

SQLコマンドをコピーするには、次のステップを実行します。

1. 作業領域のホームページで「SQLワークショップ」、「SQLコマンド」の順にクリックします。

   SQLコマンド・ページが表示されます。

2. 「保存されたSQL」タブをクリックします。

   コマンドの「保存されたSQL」リストが表示ペインに表示されます。

3. コマンドのタイトルをクリックして、そのコマンドをコマンド・エディタにロードします

4. 「保存」をクリックして、コマンドを保存します。

5. コマンドの新しい名前を「名前」フィールドに入力して、「保存」をクリックします。

   コマンドが新しい名前にコピーされます。

## 保存されたコマンドの使用

自分が保存したコマンドや、同じ作業領域内の他のユーザーが保存したコマンドにアクセスできます。また、クエリー・ビルダーから、自分が保存したSQLコマンドまたは同じ作業領域内の他のユーザーが保存したSQLコマンドにアクセスすることもできます。

このセクションの構成は次のとおりです。

- 保存されたコマンドへのアクセス

- 「保存されたSQL」ペインについて

### 保存されたコマンドへのアクセス

保存されたSQLコマンドにアクセスするには、次のステップを実行します。

1. 作業領域のホームページで「SQLワークショップ」、「SQLコマンド」の順にクリックします。

   SQLコマンド・ページが表示されます。

2. 「保存されたSQL」タブをクリックします。

   コマンドの「保存されたSQL」リストが表示ペインに表示されます。

3. コマンドのタイトルをクリックして、そのコマンドをコマンド・エディタにロードします。

   エディタにコマンドが表示されます。

4. 「実行」をクリックして、コマンドを実行します。

### 「保存されたSQL」ペインについて

「保存されたSQL」ペインには、現行の作業領域に保存されたすべてのコマンドのリストが表示されます。このリストには、「SQLコマンド」から保存されたコマンドとクエリー・ビルダーから保存されたSQLコマンドが表示されます。保存するSQLコマンドには、現行の作業領域内で一意の名前を指定する必要があります。クエリー・ビルダーと「SQLコマンド」で同じ名前を使用することはできません。

各コマンド・エントリには、所有者名、コマンド名、SQLコマンドの最初の文字、説明が存在する場合はその説明、およびそのコマンドの最終更新者名と最終更新日時が示されます。

proc_savedsql.gifの説明

「保存されたSQL」ペインでは、次の操作を実行できます。

- 所有者別のコマンドの表示。「所有者」リストから、表示するコマンドを所有するユーザーを選択して指定します。すべてのスクリプトを表示するには、「-すべてのユーザー-」を選択します。

- コマンドの検索。「検索」フィールドにコマンドの名前または名前の一部、あるいはコード・スニペットを入力して、「実行」をクリックします。すべてのスクリプトを表示するには、「検索」フィールドを空のままにして「実行」をクリックします。「行」リストから選択して、表示する行数を制御します。

- 出力行数の設定。「表示」リストから、一度に表示する保存されたSQLコマンドの数を選択して指定します。

- コマンドの削除。削除する各コマンドに関連付けられたチェック・ボックスを選択し、「チェックした項目の削除」をクリックします。

- コマンドのソート。列ヘッダーをクリックして、リストされたコマンドをその列ごとにソートします。

## SQLコマンド履歴の使用

実行したコマンドは、明示的に保存するかどうかに関係なく、コマンド履歴に格納されます。SQLコマンドの履歴を使用して、「SQLコマンド」で実行したコマンドにアクセスします。

このセクションの構成は次のとおりです。

- コマンド履歴からのコマンドへのアクセス

- 「履歴」ペインについて

### コマンド履歴からのコマンドへのアクセス

履歴のコマンドにアクセスするには、次のステップを実行します。

1. 作業領域のホームページで「SQLワークショップ」、「SQLコマンド」の順にクリックします。

   SQLコマンド・ページが表示されます。

2. 「履歴」タブをクリックします。

   「履歴」のコマンドのリストが表示ペインに表示されます。

3. SQL列に表示されているコマンドの一部をクリックします。

   エディタにコマンドが表示されます。

### 「履歴」ペインについて

「履歴」ペインには、実行したコマンドのリストが表示されます。

proc_history.gifの説明

各履歴エントリには、コマンドが最後に実行された時間、コマンドの最初の文字およびコマンドを実行したスキーマが表示されます。

「履歴」ペインでは、次の操作を実行できます。

- コマンドのロード: SQL列に表示されているコマンドの一部をクリックして、コマンドをコマンド・エディタにロードします。コマンドがロードされると、このコマンドを最後に実行したスキーマも設定されます。

- 時間によるソート: 「時間」列ヘッダーをクリックして、コマンド履歴を古い順または新しい順にソートします。

## 結果の表示

SQLコマンドを実行すると、結果が表示されます。最後に実行されたコマンドの結果は、別のSQLコマンドを実行するか、「SQLコマンド」を終了するまで入手可能です。

このセクションの構成は次のとおりです。

- 「結果」ペインへのアクセス

- 「結果」ペインについて

### 「結果」ペインへのアクセス

SQLコマンドの結果を表示するには、次のステップを実行します。

1. 作業領域のホームページで「SQLワークショップ」、「SQLコマンド」の順にクリックします。

   SQLコマンド・ページが表示されます。

2. 「結果」タブをクリックします。

   proc_results.gifの説明

   表示ペインに、HTML形式で結果が表示されます。

3. 「DBMS出力」をクリックして、プレーン・テキストでDBMS出力の結果を表示します。

   DBMS出力のコントロールは、HTML形式の結果に加えてDBMS出力がある場合にのみ表示されます。DBMS出力のみの場合またはHTML形式の出力のみの場合は表示されません。

### 「結果」ペインについて

「結果」ペインには、SQLコマンドの結果がHTML形式の表として表示されます。出力の最後に、戻された行数とかかった時間が表示されます。DBMS出力は、HTML形式の結果の後にプレーン・テキストとして表示されます。

「結果」ペインでは、次の操作を実行できます。

- DBMS出力の表示。表示された結果の下部にある「DBMS出力」をクリックして、DBMS出力の行を表示します。このコントロールは、表示するDBMS出力がある場合にのみ表示されます。

- 結果のエクスポート。「CSVのエクスポート」をクリックして、結果をローカル・ファイル・システムのカンマ区切りファイルにエクスポートします。ファイルの名前とディレクトリを入力するよう要求されます。

## 実行計画の使用

OracleオプティマイザでSQLコマンドを実行するために使用する実行計画を表示できます。実行計画を表示するためにコマンドを実行する必要はありません。

explaintab.gifの説明

このセクションの構成は次のとおりです。

- 実行計画の表示

- 「実行計画」ペインについて

### 実行計画の表示

実行計画を表示するには、次のステップを実行します。

1. 作業領域のホームページで「SQLワークショップ」、「SQLコマンド」の順にクリックします。

   SQLコマンド・ページが表示されます。

2. 表示する計画を持つコマンドを入力またはロードします。

3. 「実行計画」タブをクリックします。

   表示ペインに、オプティマイザに使用される実行計画が表示されます。

### 「実行計画」ペイン

「実行計画」ペインに、OracleオプティマイザでSQLコマンドを実行するために使用する計画が表示されます。このペインには、通常、使用される問合せ計画、索引列および表列が表示されます。

「実行計画」ペインでは、次の操作を実行できます。

- オブジェクト定義の表示。問合せ計画内のオブジェクト名をクリックして、そのオブジェクトの定義をオブジェクト・ブラウザに表示します。

- 索引定義の表示。表の列内の索引名をクリックして、その索引の定義をオブジェクト・ブラウザに表示します。