Oracle HTML DBユーザーズ・ガイド
リリース2.0
B25045-01
  目次
目次
索引
索引

戻る
戻る
次へ
次へ
 

20 SQLコマンド・プロセッサの使用

このセクションでは、SQLコマンド・プロセッサの使用方法について説明します。

内容は次のとおりです。

SQLコマンド・プロセッサ

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

クエリー・ビルダーで作成したSQLコマンドには、SQLコマンド・プロセッサでアクセスできます。保存するSQLコマンドには、作業領域内で一意の名前を指定する必要があります。

SQLコマンド・プロセッサとSQLスクリプト・リポジトリ間には相互作用はありません。SQLコマンド・プロセッサからSQLコマンドをカット・アンド・ペーストして、SQLスクリプト・エディタで実行できます。

SQLコマンド・プロセッサへのアクセス

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

  1. Oracle HTML DBにログインします。

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

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

    • 「SQLワークショップ」アイコン、「SQLコマンド」アイコンの順にクリックして、SQLコマンド・プロセッサのホームページにドリルダウンする。

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

    図20-1 SQLワークショップのプルダウン・メニュー

    sqlwrkshpmenu.gifの説明が続きます。
    sqlwrkshpmenu.gifの説明


    注意:

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

SQLコマンド・プロセッサのホームページ

SQLコマンド・プロセッサのホームページには、コマンド・エディタと表示ペインが含まれています。このエディタでSQLコマンドの入力および編集を行い、出力、保存されたコマンド・リストおよび履歴リストを表示ペインに表示します。

図20-2 SQLコマンド・プロセッサのホームページ

proc_home.gifの説明が続きます。
proc_home.gifの説明

SQLコマンドのホームページでは、次の操作を実行できます。

  • スキーマの選択。「スキーマ」リストから、コマンドを実行するスキーマを選択して指定します。

  • トランザクション・コマンドの無効化。 可能な場合は、「自動コミット」チェック・ボックスを選択して、自動コミットを有効にし、トランザクション・コマンドを無効にします。「自動コミット」チェック・ボックスは、現行のHTML DBインスタンスに対してトランザクションSQLコマンドが有効になっている場合にのみ使用可能です。

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

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

  • SQLコマンドの実行。「実行」([Ctrl]+[Enter])をクリックして、エディタ内のコマンドまたはエディタ内で現在選択されているコマンドを実行します。

  • 実行する個々の文の選択。エディタで個々の文を選択し、「実行」をクリックするか、または[Ctrl]+[Enter]を押して、選択した文のみを実行します。


参照:

「自動コミット」チェック・ボックスを有効にする方法については、「SQLコマンド・プロセッサでのトランザクション」および「SQLワークショップの構成」を参照してください。

「結果」タブ

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

「説明」タブ

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


参照:

実行計画の詳細は、「上位SQL」を参照してください。

「説明」タブ

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

「保存されたSQL」タブ

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

「履歴」タブ

「履歴」タブをクリックして、最近実行されたコマンドを表示します。最近実行された200個のコマンドが保存されています。

SQLコマンドの実行

権限を所有しているOracleデータベース・スキーマに対してSQLコマンドを実行するには、SQLコマンド・プロセッサを使用します。

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

  1. 「作業領域」ホームページで「SQLワークショップ」アイコンをクリックします。

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

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

  4. 「スキーマ」リストから、SQLコマンドを実行するデータベース・スキーマを選択して指定します。

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

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

SQLコマンド・プロセッサでのトランザクション

トランザクションSQLコマンドがHTML DBインスタンスに対して有効になっている場合は、「自動コミット」チェック・ボックスがSQLコマンド・プロセッサのホームページに表示されます。

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

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

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

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

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

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

  • カレント・トランザクションは、セッション・タイムアウトによって終了し、ロールバックされます。システム・プリファレンスSQL_COMMAND_MAX_INACTIVITYでは、アクティブではないセッションがタイムアウトするまでの時間を設定します。デフォルトのタイムアウトは60分です。

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


参照:

スクリプトの実行方法については、「SQLスクリプト・リポジトリの使用」を参照してください。セッション・タイムアウトを設定する方法およびトランザクションSQLコマンドを有効にする方法については、「SQLワークショップの構成」を参照してください。

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

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

コマンドの終了

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

SELECT * from emp;

または

SELECT * from emp
/

または

SELECT * from emp

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

バインド変数の使用

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

次に例を示します。

SELECT * from emp where deptno = :dept

以前のリリースのOracle HTML DBでは、次のコマンドを実行して作業領域IDを確認できました。

select :WORKSPACE_ID from dual

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

select v('WORKSPACE_ID') from dual

SQLコマンドの保存

SQLコマンド・プロセッサでは、入力したコマンドを保存できます。

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

  1. 「作業領域」ホームページで「SQLワークショップ」アイコンをクリックします。

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

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

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

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

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

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

コマンドのコピー

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

  1. 「作業領域」ホームページで「SQLワークショップ」アイコンをクリックします。

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

  3. コマンド・エディタと表示ペインの間にある「保存されたSQL」タブをクリックします。

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

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

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

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

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

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

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

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

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

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

  1. 「作業領域」ホームページで「SQLワークショップ」アイコンをクリックします。

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

  3. コマンド・エディタと表示ペインの間にある「保存されたSQL」タブをクリックします。

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

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

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

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

「保存されたSQL」ペイン

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

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

図20-3 「保存されたSQL」ペイン

proc_savedsql.gifの説明が続きます。
proc_savedsql.gifの説明

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

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

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

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

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

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

SQLコマンド履歴の使用

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

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

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

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

  1. 「作業領域」ホームページで「SQLワークショップ」アイコンをクリックします。

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

  3. コマンド・エディタと表示ペインの間にある「履歴」タブをクリックします。

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

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

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

「履歴」ペイン

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

図20-4 「履歴」ペイン

proc_history.gifの説明が続きます。
proc_history.gifの説明

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

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

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

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

結果の表示

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

図20-5 「結果」ペイン

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

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

  1. 「作業領域」ホームページで「SQLワークショップ」アイコンをクリックします。

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

  3. コマンド・エディタと表示ペインの間にある「結果」タブをクリックします。

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

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

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

「結果」ペイン

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

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

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

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

実行計画の使用

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

図20-6 「実行計画」ペイン

explaintab.gifの説明が続きます。
explaintab.gifの説明

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

実行計画の表示

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

  1. 「作業領域」ホームページで「SQLワークショップ」アイコンをクリックします。

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

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

  4. コマンド・エディタと表示ペインの間にある「説明」をクリックします。

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

「実行計画」ペイン

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

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

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

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