ヘッダーをスキップ
Oracle® Application Express SQLワークショップ・ガイド
リリース4.2 for Oracle Database 12c
B71341-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 SQLコマンドの使用

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

内容は次のとおりです。


参照:

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

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

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

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


2.1 「SQLコマンド」の概要

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

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

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

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

  1. ワークスペースのホームページにログインします。

    ワークスペースのホームページが表示されます。

  2. 「SQLワークショップ」をクリックします。

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

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

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


    注意:

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

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

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

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

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

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

スキーマの選択

スキーマはデータベース・オブジェクトの論理的なコンテナです。別のスキーマのオブジェクトにアクセスするには、SQLワークショップのホームページで「スキーマ」リストから選択します。自分のワークスペースに割り当てられたスキーマのみがリストされます。

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

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

obj_b_icons.gifの説明が続きます
図obj_b_icons.gifの説明

次の使用可能なアイコンがあります。

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

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

内容は次のとおりです。

2.4.1 SQLコマンドの実行

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

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

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

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

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


    ヒント:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.4.5 バインド変数の使用

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

次に例を示します。

SELECT * FROM emp WHERE deptno = :dept

次のSQLコマンドを実行してワークスペースIDを確認します。

SELECT v('WORKSPACE_ID') FROM dual

2.4.6 「表の検索」アイコンの使用

「表の検索」アイコンは懐中電灯の形をしています。このアイコンをクリックすると、現在選択しているスキーマ内の表を表示できます。

wrkshp_find_tables.gifの説明が続きます
図wrkshp_find_tables.gifの説明

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

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

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

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

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

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

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

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

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

  4. 表名を選択します。

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

    table_finder.gifの説明が続きます
    図table_finder.gifの説明

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

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

2.5 SQLコマンドの保存

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

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

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

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

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

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

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

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

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

2.6 コマンドのコピー

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

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

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

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

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

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

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

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

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

2.7 結果の表示

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

内容は次のとおりです。

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

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

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

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

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

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

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

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

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

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

proc_results.gifの説明が続きます
図proc_results.gifの説明

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

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

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

2.8 実行計画の使用

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

内容は次のとおりです。

2.8.1 実行計画の表示

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

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

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

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

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

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

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

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

explain_tab.gifの説明が続きます
図explain_tab.gifの説明

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

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

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

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

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

内容は次のとおりです。

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

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

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

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

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

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

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

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

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

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

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

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

sql_hist.gifの説明が続きます
図sql_hist.gifの説明

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

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

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

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

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

2.10 SQLコマンド履歴の使用

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

内容は次のとおりです。

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

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

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

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

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

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

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

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

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

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

sql_hist.gifの説明が続きます
図sql_hist.gifの説明

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

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

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

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