プライマリ・コンテンツに移動
Oracle® Application Express SQLワークショップ・ガイド
リリース5.0
E67398-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 SQLコマンドの使用

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


参照:

  • SQL文およびその他のSQLの詳細(演算子、ファンクションおよび書式モデルなど)は、Oracle Database SQL言語リファレンスを参照してください

  • SQLの概念については、Oracle Database概要を参照してください

  • SQL*Plus(OracleバージョンのSQL)の詳細は、SQL*Plusユーザーズ・ガイドおよびリファレンスを参照してください

  • この章の例で使用されているHRサンプル・スキーマの詳細は、Oracle Databaseサンプル・スキーマを参照してください


3.1 「SQLコマンド」の概要

データベース・オブジェクトの作成、編集、表示、実行および削除には、SQLコマンドを使用できます。SQLコマンドには、SQL文またはPL/SQLブロックを含めることができます。

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

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

  • 保存されたSQLコマンドには、指定されたワークスペース内で一意の名前が付いている必要があります。

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

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

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

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

  1. 「ワークスペース」ホームページで、「SQLワークショップ」をクリックします。

  2. 「SQLコマンド」をクリックします。

    sql_c.pngの説明が続きます
    図sql_c.pngの説明

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


    注意:

    インスタンス管理者がこのApplication Expressインスタンスに対してRESTfulサービスを無効にしている場合、このインスタンスでRESTfulサービスが使用できないため、RESTfulサービス・アイコンが表示されません。『Oracle Application Express管理ガイド』のSQLワークショップの構成に関する説明を参照してください。

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

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

sql_c_top.pngの説明が続きます
図sql_c_top.pngの説明

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

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

  • 行: 「表示」リストから、同時に表示する出力の行数(最大100,000行)を選択します。「表示」リストの設定に関係なく、DBMS出力のすべての行が表示されます。

  • コマンドのクリア: 「コマンドのクリア」ボタンを使用して、コマンド・エディタのテキストを消去します。

  • 表の検索: 「表の検索」ボタンを使用して、現在選択しているスキーマ内の表を表示します。「「表の検索」ボタンの使用」を参照してください。

  • 保存: 「保存」ボタンをクリックするとコマンド・エディタのコンテンツ、またはファイルで現在ハイライトされているコンテンツが保存されます。名前および説明(オプション)を入力するよう求められます。「保存されたSQL」リストにコマンドが表示されます。「SQLコマンドの保存」を参照してください。

  • 実行: 「実行」ボタン([Ctrl]+[Enter])をクリックすると、コマンド・エディタ内のコマンド、または現在コマンド・エディタでハイライトされているコマンドが実行されます。「SQLコマンドの実行」を参照してください。

表示ペインは、「SQLコマンド」ホームページの下部にあり、次の5つのタブを備えています。

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

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

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

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

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

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

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

3.4.1 SQLコマンドの実行

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

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

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

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

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


    ヒント:

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

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

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

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

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

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

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

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

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

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

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

3.4.3 トランザクションSQLコマンドの無効化

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

3.4.4 トランザクションSQLコマンドの有効化

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

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

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

3.4.6 コマンドの終了

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

SELECT * from emp;
SELECT * from emp
/
SELECT * from emp

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

3.4.7 バインド変数の使用

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

次に例を示します。

SELECT * FROM emp WHERE deptno = :dept

3.4.8 「表の検索」ボタンの使用

「表の検索」ボタンを使用して、現在選択しているスキーマ内の表を表示します。

現在のスキーマ内の表を表示するには、次のステップを実行します。

  1. 「SQLコマンド」にナビゲートします。

  2. 「スキーマ」リストから、スキーマを選択します(オプション)。

  3. 「表の検索」をクリックします。

    「表ファインダ」が表示されます。選択されたスキーマを表示するナビゲーション・バーはページの上部に表示され、次のコントロールが含まれています。

    • 検索:表名を検索します。「検索」フィールドに大/小文字を区別しないキーワードを入力し、「実行」をクリックします。すべての表を表示するには、「検索」フィールドをブランクのままにして「実行」をクリックします。

    • ビュー:生成されるレポートにビューを含めるには、「ビュー」チェック・ボックスを選択して「実行」をクリックします。

    • :生成されるレポートに表示する行数を指定します。表示する行数を変更するには、リストから選択して「実行」をクリックします。

    表ファインダ・レポートが表示され、その中には表名、行数、最新分析日およびオブジェクト・タイプが含まれます。

  4. 表名を選択します。

    表ファインダ・レポートが表示されます。

    このレポートには列名、データ型、長さ、精度およびスケールが表示され、ページ下部には表を再作成するために必要なSQLが表示されます。

  5. このページからコマンド・エディタ内の既存のコマンドにSQLを追加するには、「追加」をクリックします。

  6. コマンド・エディタ内の既存のコマンドをこのページのSQLで置換するには、「置換」をクリックします。

3.5 SQLコマンドの保存

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

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

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

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

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

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

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

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

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

3.6 コマンドのコピー

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

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

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

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

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

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

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

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

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

3.7 結果の表示

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

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

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

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

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

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

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

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

    DBMS出力結果がある場合にのみ、「DBMS出力」コントロールが表示されます。

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

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

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

  • DBMS出力の表示。入力されたSQLコマンド、SQLまたはPL/SQLブロックのタイプに応じてHTML出力またはDBMS出力が自動的に表示されます。

  • 結果のダウンロード。「ダウンロード」をクリックして、結果をローカル・ファイルシステムのカンマ区切りファイルにエクスポートします。ファイルの名前とディレクトリを入力するよう要求されます。HTML出力の場合にのみ使用できます。

3.8 実行計画の使用

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

3.8.1 実行計画の表示

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3.10 SQLコマンド履歴の使用

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

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

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

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

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

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

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

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

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

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

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

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

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