ヘッダーをスキップ
Oracle Fusion Middleware PL/SQL Web Toolkitリファレンス
11gリリース1(11.1.1)
B56250-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

9 owa_utilパッケージ

owa_utilパッケージには、CGI環境変数の値の取得、クライアントに返されるデータの出力、問合せの結果のHTML表への出力などの操作を実行するための、ユーティリティ・サブプログラムが含まれます。

owa_utilには、3種類のユーティリティ・サブプログラムが含まれます。

9.1 サマリー

owa_util.bind_variablesファンクション: SQL問合せを準備し、変数をSQL問合せにバインドします。

owa_util.calendarprintプロシージャ: カレンダを出力します。

owa_util.cellsprintプロシージャ: 問合せの内容をHTMLのテーブルに出力します。

owa_util.choose_dateプロシージャ: ユーザーが日付を選択できるHTMLフォーム要素を生成します。

owa_util.dateTypeデータ型: 日付情報を保持するデータ型です。

owa_util.get_cgi_envファンクション: 指定されたCGI環境変数の値を返します。

owa_util.get_owa_service_pathファンクション: PL/SQL Gatewayに対するフル仮想パスを返します。

owa_util.get_procedureファンクション: PL/SQL Gatewayによって起動されるプロシージャの名前を返します。

owa_util.http_header_closeプロシージャ: HTTPヘッダーを閉じます。

owa_util.ident_arrデータ型: データ型です。

owa_util.ip_addressデータ型: owa_sec.get_client_ipファンクションによって使用されます。

owa_util.listprintプロシージャ: 問合せ結果のデータを含むHTMLフォーム要素を生成します。

owa_util.mime_headerプロシージャ: HTTPヘッダーにContent-type行を生成します。

owa_util.print_cgi_envプロシージャ: すべてのCGI環境変数とその値のリストを生成します。

owa_util.redirect_urlプロシージャ: HTTPヘッダーにLocation行を生成します。

owa_util.showpageプロシージャ: SQL*Plusで、htpパッケージおよびhtfパッケージによって生成されたページを出力します。

owa_util.showsourceプロシージャ: 指定されたサブプログラムのソースを出力します。

owa_util.signatureプロシージャ: ページがPL/SQL Agentによって生成されたことを示す行を出力します。

owa_util.status_lineプロシージャ: HTTPヘッダーにStatus行を生成します。

owa_util.tablePrintファンクション: データベース表のデータをHTMLの表として出力します。

owa_util.todateファンクション: dateTypeのデータを標準のPL/SQL日付型に変換します。

owa_util.who_called_meプロシージャ: プロシージャのコール元に関する情報を返します。

9.2 owa_util.bind_variablesファンクション

変数をバインドすることでSQL問合せを作成し、オープンされているカーソルに出力を格納します。このファンクションは、動的に生成された問合せを送信するプロシージャに対するパラメータとして使用します。指定できるバインド変数は最大で25個です。

表9-1にowa_util.bind_variablesファンクションのプロパティを示します。

表9-1 owa_util.bind_variablesファンクション

プロパティ 定義

構文:

owa_util.bind_variables(
   theQuery       in       varchar2   DEFAULT NULL
   bv1Name        in       varchar2   DEFAULT NULL
   bv1Value       in       varchar2   DEFAULT NULL
   bv2Name        in       varchar2   DEFAULT NULL
   bv2Value       in       varchar2   DEFAULT NULL
   bv3Name        in       varchar2   DEFAULT NULL
   bv3Value       in       varchar2   DEFAULT NULL
        ...
   bv25Name       in       varchar2   DEFAULT NULL
   bv25Value      in       varchar2   DEFAULT NULL) return integer;

パラメータ:

theQuery: SQL問合せ文。SELECT文を指定する必要がある。

bv1Name: 変数の名前。

bv2Value: 変数の値。

戻り値:

オープンしているカーソルを示す整数値。


9.3 owa_util.calendarprintプロシージャ

HTMLにカレンダを作成します。カレンダ内の各日付には、任意の数のハイパーテキスト・リンクを含めることができます。問合せは次のように作成します。

このプロシージャには2つのバージョンがあります。1番目のバージョンは、varchar2の文字列で格納されるハードコードされた問合せを使用します。2番目のバージョンは、owa_util.bind_variablesファンクションで作成される動的な問合せを使用します。

表9-2にowa_util.calendarprintプロシージャのプロパティを示します。

表9-2 owa_util.calendarprintプロシージャ

プロパティ 定義

構文:

owa_util.calendarprint(
   p_query        in       varchar2
   p_mf_only      in       varchar2   DEFAULT 'N');

owa_util.calendarprint(
   p_cursor       in       integer
   p_mf_only      in       varchar2   DEFAULT 'N');

パラメータ:

p_query: PL/SQLの問合せ。問合せから返される内容については、前述の説明を参照。

p_cursor: p_queryと同じフォーマットを含むPL/SQLカーソル。

p_mf_only: 「N」(デフォルト)の場合は、生成されるカレンダには日曜日から土曜日までが含まれる。Nではない場合は、月曜日から金曜日までしか含まれない。

実行結果:

枠付きのHTML表形式のカレンダ。


9.4 owa_util.cellsprintプロシージャ

SQL問合せの出力からHTML表を生成します。SQLの基本データ項目はHTMLのセルにマップされ、SQLの行はHTMLの行にマップされます。HTML表を開始および終了するコードを記述する必要があります。このプロシージャには9つのバージョンがあります。

6番目から9番目のバージョンは、最初の4つのバージョンと同じですが、行数の出力パラメータを返す点が異なります。

表9-3にowa_util.cellsprintプロシージャのプロパティを示します。

表9-3 owa_util.cellsprintプロシージャ

プロパティ 定義

構文:

owa_util.cellsprint(
   p_colCnt          in    integer
   p_resultTbl       in    vc_arr
   p_format_numbers  in    varchar2   DEFAULT NULL);

owa_util.cellsprint(
   p_theQuery        in    varchar2
   p_max_rows        in    number     DEFAULT 100
   p_format_numbers  in    varchar2   DEFAULT NULL);

owa_util.cellsprint(
   p_theCursor       in    integer
   p_max_rows        in    number     DEFAULT 100
   p_format_numbers  in    varchar2   DEFAULT NULL);

owa_util.cellsprint(
   p_theQuery        in    varchar2
   p_max_rows        in    number     DEFAULT 100
   p_format_numbers  in    varchar2   DEFAULT NULL
   p_skip_rec        in    number      DEFAULT 0
   p_more_data       out   boolean);

owa_util.cellsprint(
   p_theCursor       in    integer
   p_max_rows        in    number     DEFAULT 100
   p_format_numbers  in    varchar2   DEFAULT NULL
   p_skip_rec        in    number     DEFAULT 0
   p_more_data       out   boolean);

owa_util.cellsprint(
   p_theQuery        in    varchar2
   p_max_rows        in    number     DEFAULT 100
   p_format_numbers  in    varchar2   DEFAULT NULL
   p_reccnt          out   number);

owa_util.cellsprint(
   p_theCursor       in    integer
   p_max_rows        in    number     DEFAULT 100
   p_format_numbers  in    varchar2   DEFAULT NULL
   p_reccnt          out   number);

owa_util.cellsprint(
   p_theQuery        in    varchar2
   p_max_rows        in    number     DEFAULT 100
   p_format_numbers  in    varchar2   DEFAULT NULL
   p_skip_rec        in    number     DEFAULT 0
   p_more_data       out   boolean
   p_reccnt          out   number);

owa_util.cellsprint(
   p_theCursor       in    integer
   p_max_rows        in    number     DEFAULT 100
   p_format_numbers  in    varchar2   DEFAULT NULL
   p_skip_rec        in    number     DEFAULT 0
   p_more_data       out   boolean
   p_reccnt          out   number);

パラメータ:

p_colCnt: 表の列数。

p_theQuery: SQLのSELECT文。

p_theCursor: カーソルID。owa_util.bind_variablesファンクションからの戻り値を使用可能。

p_max_rows: 出力する最大行数。

p_format_numbers: このパラメータの値がNULLでない場合は、数値フィールドは右揃えされ、小数点以下第2位に四捨五入される。

p_skip_rec: HTML表から除外する行数。

p_more_data: 問合せまたはカーソルにさらに行がある場合はTRUE、それ以外の場合はFALSE。

p_reccnt: 問合せの結果返された行数。スキップされた行がある場合、この値にはスキップされた行は含まれない。

p_resultTbl: 問合せの結果が格納される索引表。問合せの各エントリは、1つの列の値に対応する。

実行結果:

<tr><td>QueryResultItem</td><td>QueryResultItem</td></tr>
<tr><td>QueryResultItem</td><td>QueryResultItem</td></tr>

9.5 owa_util.choose_dateプロシージャ

ユーザーが日、月、および年を選択できる3つのHTMLフォーム要素を作成します。これらの要素からデータを受け取るプロシージャのパラメータには、owa_util.dateTypeデータ型を使用する必要があります。owa_util.dateTypeデータ型の値をOracle Databaseバージョン7の標準のDATEデータ型に変換するには、owa_util.todateファンクションを使用します。

表9-4にowa_util.choose_dateプロシージャのプロパティを示します。

表9-4 owa_util.choose_dateプロシージャ

プロパティ 定義

構文:

owa_util.choose_date(
   p_name         in       varchar2,
   p_date         in       date       DEFAULT SYSDATE);

パラメータ:

p_name: フォーム要素の名前。

p_date: HTMLページが表示されるときに最初に選択されている日付の初期値。

実行結果:

<SELECT NAME="p_name" SIZE="1">
<OPTION value="01">1
     ...
<OPTION value="31">31
</SELECT>
-
<SELECT NAME="p_name" SIZE="1">
<OPTION value="01">JAN
     ...
<OPTION value="12">DEC
</SELECT>
-
<SELECT NAME="p_name" SIZE="1">
<OPTION value="1992">1992
     ...
<OPTION value="2002">2002
</SELECT>

9.6 owa_util.dateTypeデータ型

owa_util.todateファンクションは、この型の項目を、データベースに日付として認識され、適切に処理されるDATE型に変換します。owa_util.choose_dateプロシージャを使用すると、ユーザーは必要な日付を選択できます。

表9-5にowa_util.dateTypeデータ型のプロパティを示します。

表9-5 owa_util.dateTypeデータ型

プロパティ 定義

構文:

type dateType is table of varchar2(10) index by binary_integer;

戻り値:

なし


9.7 owa_util.get_cgi_envファンクション

指定されたCGI環境変数の値を返します。WRBはCGIでは動作しませんが、PL/SQL Gatewayを含む多くのWRBカートリッジはCGI環境変数を利用できます。

表9-6にowa_util.get_cgi_envファンクションのプロパティを示します。

表9-6 owa_util.get_cgi_envファンクション

プロパティ 定義

構文:

owa_util.get_cgi_env(param_name in varchar2) return varchar2;

パラメータ:

param_name: CGI環境変数の名前。大/小文字は区別されない。QUERY_STRINGを除く、すべてのCGI環境変数の値を取得可能。これは、PL/SQL GatewayがQUERY_STRINGの値を解析して、ストアド・プロシージャに渡すパラメータを判別するため。

戻り値:

指定されたCGI環境変数の値。変数が定義されていない場合は、NULLを返す。


9.8 owa_util.get_owa_service_pathファンクション

リクエストを処理するPL/SQL Gatewayのフル仮想パスを返します。

表9-7にowa_util.get_owa_service_pathファンクションのプロパティを示します。

表9-7 owa_util.get_owa_service_pathファンクション

プロパティ 定義

構文:

owa_util.get_owa_service_path return varchar2;

パラメータ:

なし

戻り値:

リクエストを処理するPL/SQL Gatewayの仮想パス。


9.9 owa_util.get_procedureファンクション

PL/SQL Gatewayによって呼び出されるプロシージャの名前を返します。

表9-8にowa_util.get_procedureファンクションのプロパティを示します。

表9-8 owa_util.get_procedureファンクション

プロパティ 定義

構文:

owa_util.get_procedure return varchar2;

パラメータ:

なし

戻り値:

プロシージャの名前。プロシージャがパッケージで定義されている場合は、パッケージ名を含む。


9.10 owa_util.http_header_closeプロシージャ

HTTPヘッダーを閉じるための改行文字を生成します。owa_util.mime_headerプロシージャowa_util.redirect_urlプロシージャ、またはowa_util.status_lineプロシージャなどのコールで、bclose_headerパラメータを使用してヘッダーを閉じていない場合は、このプロシージャを使用します。htp.printまたはhtp.prnをコールする前に、HTTPヘッダーを閉じる必要があります。

表9-9にowa_util.http_header_closeプロシージャのプロパティを示します。

表9-9 owa_util.http_header_closeプロシージャ

プロパティ 定義

構文:

owa_util.http_header_close;

パラメータ:

なし

実行結果:

HTTPヘッダーを閉じる改行文字。


9.11 owa_util.ident_arrデータ型

配列に使用するデータ型です。

表9-10にowa_util.ident_arrデータ型のプロパティを示します。

表9-10 owa_util.ident_arrデータ型

プロパティ 定義

構文:

type ident_arr is table of varchar2(30) index by binary_integer;

戻り値:

なし


9.12 owa_util.ip_addressデータ型

owa_sec.get_client_ipファンクションが使用するデータ型です。

表9-11にowa_util.ip_addressデータ型のプロパティを示します。

表9-11 owa_util.ip_addressデータ型

プロパティ 定義

構文:

type ip_address is table of integer index by binary_integer;

戻り値:

なし


9.13 owa_util.listprintプロシージャ

SQL問合せの出力から、HTMLの選択リスト・フォーム要素を生成します。問合せの出力の列は、次の方法で処理されます。

このプロシージャには2つのバージョンがあります。1番目のバージョンにはハードコードされたSQL問合せが含まれ、2番目のバージョンにはowa_util.bind_variablesファンクションで作成される動的な問合せが使用されます。

表9-12にowa_util.listprintプロシージャのプロパティを示します。

表9-12 owa_util.listprintプロシージャ

プロパティ 定義

構文:

owa_util.listprint(
   p_theQuery     in       varchar2
   p_cname        in       varchar2
   p_nsize        in       number
   p_multiple     in       boolean   DEFAULT FALSE);

owa_util.listprint(
   p_theCursor    in    integer
   p_cname        in       varchar2
   p_nsize        in       number
   p_multiple     in       boolean   DEFAULT FALSE);

パラメータ:

p_theQuery: SQL問合せ。

p_theCursor: カーソルID。owa_util.bind_variablesファンクションからの戻り値を使用可能。

p_cname: HTMLフォーム要素の名前。

p_nsize: フォーム要素のサイズ(スクロールしないで表示可能な項目数が決まる)。

p_multiple: 複数の選択を許可するかどうか。

実行結果:

<SELECT NAME="p_cname" SIZE="p_nsize">
<OPTION SELECTED value='value_from_the_first_column'>value_from_the_second_column
<OPTION SELECTED value='value_from_the_first_column'>value_from_the_second_column
     ...
</SELECT>

9.14 owa_util.mime_headerプロシージャ

スクリプトが返すデフォルトのMIMEヘッダーを変更します。スクリプトでデフォルトのMIMEヘッダーを使用しないようにするため、このプロシージャはhtp.printまたはhtp.prnコールより前に置く必要があります。

表9-13にowa_util.mime_headerプロシージャのプロパティを示します。

表9-13 owa_util.mime_headerプロシージャ

プロパティ 定義

構文:

owa_util.mime_header(
   ccontent_type  in       varchar2   DEFAULT 'text/html',
   bclose_header  in       boolean    DEFAULT TRUE,
   ccharset       in       varchar2   DEFAULT NULL);

パラメータ:

ccontent_type: 生成するMIMEタイプ。

bclose_header: HTTPヘッダーを閉じるかどうか。TRUEの場合は、2つの改行が送信されて、HTTPヘッダーが閉じられる。TRUE以外の場合は、1つの改行が送信されて、HTTPヘッダーは開いたままになる。

ccharset: 使用するキャラクタ・セット。

実行結果:

Content-type: <ccontent_type>; charset=<ccharset>

例:

owa_util.mime_header('text/plain', false, 'ISO-8859-4')
generates:
Content-type: text/plain; charset=ISO-8859-4\n

9.15 owa_util.print_cgi_envプロシージャ

PL/SQL Gatewayによりストアド・プロシージャで使用可能なCGI環境変数とその値をすべて生成します。

表9-14にowa_util.print_cgi_envプロシージャのプロパティを示します。

表9-14 owa_util.print_cgi_envプロシージャ

プロパティ 定義

構文:

owa_util.print_cgi_env;

パラメータ:

なし

実行結果:

次の形式のリスト。

cgi_env_var_name = value\n

9.16 owa_util.redirect_urlプロシージャ

アプリケーション・サーバーが特定のURLに進むように指定します。URLにより、返されるWebページまたは実行されるプログラムを指定できます。このプロシージャは、htpまたはhtfのプロシージャまたはファンクション・コールより前に置く必要があります。

表9-15にowa_util.redirect_urlプロシージャのプロパティを示します。

表9-15 owa_util.redirect_urlプロシージャ

プロパティ 定義

構文:

owa_util.redirect_url(
   curl           in       varchar2
   bclose_header  in       boolean    DEFAULT TRUE);

パラメータ:

curl: 移動先のURL。

bclose_header: HTTPヘッダーを閉じるかどうか。TRUEの場合は、2つの改行が送信されて、HTTPヘッダーが閉じられる。TRUE以外の場合は、1つの改行が送信されて、HTTPヘッダーは開いたままになる。

実行結果:

Location: <curl>\n\n


9.17 owa_util.showpageプロシージャ

SQL*Plus、SQL*DBA、またはOracle Server ManagerにおけるプロシージャのHTML出力を表示します。このプロシージャは、htpパッケージまたはhtfパッケージを使用してHTMLページを生成する必要があります。また、プロシージャをコールされた後で、かつHTPまたはHTFの他のサブプログラムを直接または間接にコールする前に、このプロシージャを発行する必要があります。この方法は、静的なデータを設定したページを生成する際に便利です。このプロシージャは、dbms_outputを使用し、個々の行は255文字に、また全体のバッファ・サイズは1,000,000バイトに制限されています。

表9-16にowa_util.showpageプロシージャのプロパティを示します。

表9-16 owa_util.showpageプロシージャ

プロパティ 定義

構文:

owa_util.showpage;

パラメータ:

なし

実行結果:

htpプロシージャの出力は、SQL*Plus、SQL*DBA、またはOracle Server Managerで表示される。例は次のとおり。

SQL> set serveroutput on
SQL> spool gretzky.html
SQL> execute hockey.pass("Gretzky")
SQL> execute owa_util.showpage
SQL> exit

これにより、WebブラウザからアクセスできるHTMLページが生成される。


9.18 owa_util.showsourceプロシージャ

指定されたプロシージャ、ファンクション、またはパッケージのソースを出力します。パッケージに属するプロシージャまたはファンクションが指定されると、パッケージ全体が表示されます。

表9-17にowa_util.showsourceプロシージャのプロパティを示します。

表9-17 owa_util.showsourceプロシージャ

プロパティ 定義

構文:

owa_util.showsource (cname in varchar2);

パラメータ:

cname: プロシージャまたはファンクションの名前。

実行結果:

指定されたファンクション、プロシージャ、またはパッケージのソース・コード。


9.19 owa_util.signatureプロシージャ

HTMLドキュメントでシグネチャ行が後に付いたHTML行を生成します。パラメータが指定された場合は、そのプロシージャに対するPL/SQLソースを表示するハイパーテキスト・リンクも生成します。このリンクは、owa_util.showsourceプロシージャをコールします。

表9-18にowa_util.signatureプロシージャのプロパティを示します。

表9-18 owa_util.signatureプロシージャ

プロパティ 定義

構文:

owa_util.signature;
owa_util.signature (cname in varchar2);

パラメータ:

cname: ソースを表示するファンクションまたはプロシージャ。

実行結果:

パラメータを指定しないと、次のような行が生成される。

This page was produced by the PL/SQL Agent on August 9, 2001 09:30.

パラメータを指定すると、次のように、HTMLドキュメントにシグネチャ行が生成される。

This page was produced by the PL/SQL Agent on 8/09/01 09:30
View PL/SQL Source

9.20 owa_util.status_lineプロシージャ

標準のHTTPステータス・コードをクライアントに送信します。コンテンツ・データではなくヘッダーの一部としてステータス・コードを返すには、このプロシージャは、htp.printまたはhtp.prnコールより前に置く必要があります。

表9-19にowa_util.status_lineプロシージャのプロパティを示します。

表9-19 owa_util.status_lineプロシージャ

プロパティ 定義

構文:

owa_util.status_line(
   nstatus        in       integer,
   creason        in       varchar2   DEFAULT NULL
   bclose_header  in       boolean    DEFAULT TRUE);

パラメータ:

nstatus: ステータス・コード。

creason: ステータス・コードに対する文字列。

bclose_header: HTTPヘッダーを閉じるかどうか。TRUEの場合は、2つの改行が送信されて、HTTPヘッダーが閉じられる。TRUE以外の場合は、1つの改行が送信されて、HTTPヘッダーは開いたままになる。

実行結果:

Status: <nstatus> <creason>\n\n


9.21 owa_util.tablePrintファンクション

データベース表から、事前に書式設定された表またはHTML表を生成します(ユーザーのブラウザの機能によって決まります)。RAW列はサポートしますが、LONG RAW列はサポートしません。LONG RAW列を参照すると、Not Printableと表示されます。このファンクションでは、cattributesは最後のパラメータではなく2番目のパラメータです。

表9-20にowa_util.tablePrintファンクションのプロパティを示します。

表9-20 owa_util.tablePrintファンクション

プロパティ 定義

構文:

owa_util.tablePrint(
   ctable         in       varchar2
   cattributes    in       varchar2   DEFAULT NULL
   ntable_type    in       integer    DEFAULT HTML_TABLE
   ccolumns       in       varchar2   DEFAULT '*'
   cclauses       in    varchar2   DEFAULT NULL
   ccol_aliases   in       varchar2   DEFAULT NULL
   nrow_min       in       number     DEFAULT 0
   nrow_max       in       number     DEFAULT NULL) return boolean;

パラメータ:

ctable: データベース表。

cattributes: タグにそのまま追加するその他の属性。

ntable_type: 表を生成する方法。HTML_TABLEを指定して、<TABLE>タグを使用して表を生成するか、PRE_TABLEを指定して、<PRE>タグを使用して表を生成する。

ccolumns: 生成されるテーブルに含めるctableの列のカンマ区切りリスト。

cclauses: WHERE句またはORDER BY句。データベース表から取得する行、および行を並べ替える方法を指定する。

ccol_aliases: 生成されるテーブルの見出しのカンマ区切りリスト。

nrow_min: 取得された行の中で最初に表示する行。

nrow_max: 取得された行の中で最後に表示する行。

実行結果:

事前に書式設定されている表またはHTML表。リクエストされたnrow_maxより多くの行がある場合はTRUEを返す。それ以外の場合はFALSEを返す。

例:

HTMLテーブルをサポートしないブラウザの場合は、次のようなプロシージャを作成する。

create or replace procedure showemps is
ignore_more boolean;
begin
ignore_more := owa_util.tablePrint('emp', 'BORDER', OWA_UTIL.PRE_TABLE);
end;

http://myhost:8080/ows-bin/hr/plsql/showempsのようなURLをリクエストすると、次のような結果がクライアントに返される。

<PRE>
-----------------------------------------------------------------
| EMPNO |ENAME |JOB      |MGR   |HIREDATE   | SAL | COMM | DEPTNO |
-----------------------------------------------------------------
| 7369| SMITH  | CLERK   | 7902 | 17-DEC-80 | 800  |     | 20     |
| 7499| ALLEN  | SALESMAN| 7698 | 20-FEB-81 | 1600 | 300 | 30     |
| 7521| WARD   | SALESMAN| 7698 | 22-FEB-81 | 1250 | 500 | 30     |
| 7566| JONES  | MANAGER | 7839 | 02-APR-81 | 2975 |     | 20     |
| 7654| MARTIN | SALESMAN| 7698 | 28-SEP-81 | 1250 | 1400| 30     |
| 7698| BLAKE  | MANAGER | 7839 | 01-MAY-81 | 2850 |     | 30     |
| 7782| CLARK  | MANAGER | 7839 | 09-JUN-81 | 2450 |     | 10     |
| 7788| SCOTT  | ANALYST | 7566 | 09-DEC-82 | 3000 |     | 20     |
| 7839| KING   |PRESIDENT|      | 17-NOV-81 | 5000 |     | 10     |
| 7844| TURNER | SALESMAN| 7698 | 08-SEP-81 | 1500 | 0   | 30     |
| 7876| ADAMS  | CLERK   | 7788 | 12-JAN-83 | 1100 |     | 20     |
| 7900| JAMES  | CLERK   | 7698 | 03-DEC-81 | 950  |     | 30     |
| 7902| FORD   | ANALYST | 7566 | 03-DEC-81 | 3000 |     | 20     |
| 7934| MILLER | CLERK   | 7782 | 23-JAN-82 | 1300 |     | 10     |
-----------------------------------------------------------------
</PRE>

部署10の従業員について、その従業員ID、名前、および給与のみを表示するには、次のようなプロシージャを作成する。

create or replace procedure showemps_10 is
 ignore_more boolean;
begin
 ignore_more := owa_util.tablePrint
    ('EMP', 'BORDER', OWA_UTIL.PRE_TABLE,
 'empno, ename, sal',
 'where deptno=10 order by empno',
 'Employee Number, Name, Salary');
end;

http://myhost:8080/ows-bin/hr/plsql/showemps_10のようなURLをリクエストすると、次のような結果がクライアントに返される。

<PRE>
-------------------------------------
| Employee Number |Name     | Salary |
-------------------------------------
| 7782            | CLARK   | 2450   |
| 7839            | KING    | 5000   |
| 7934            | MILLER  | 1300   |
-------------------------------------
</PRE>

HTML表をサポートするブラウザの場合、部署表をHTML表で表示するには、次のようなプロシージャを作成する。

create or replace procedure showdept is
 ignore_more boolean;
begin
 ignore_more := owa_util.tablePrint('dept', 'BORDER');
end;

http://myhost:8080/ows-bin/hr/plsql/showdeptのようなURLをリクエストすると、次のような結果がクライアントに返される。

<TABLE BORDER>
<TR>
<TH>DEPTNO</TH>
<TH>DNAME</TH>
<TH>LOC</TH>
</TR>
<TR>
<TD ALIGN="LEFT">10</TD>
<TD ALIGN="LEFT">ACCOUNTING</TD>
<TD ALIGN="LEFT">NEW YORK</TD>
</TR>
<TR>
<TD ALIGN="LEFT">20</TD>
<TD ALIGN="LEFT">RESEARCH</TD>
<TD ALIGN="LEFT">DALLAS</TD>
</TR>
<TR>
<TD ALIGN="LEFT">30</TD>
<TD ALIGN="LEFT">SALES</TD>
<TD ALIGN="LEFT">CHICAGO</TD>
</TR>
<TR>
<TD ALIGN="LEFT">40</TD>
<TD ALIGN="LEFT">OPERATIONS</TD>
<TD ALIGN="LEFT">BOSTON</TD>
</TR>
</TABLE>

Webブラウザは、書式を設定して次のようなテーブルを表示する。

  --------------------------------------
  | DEPTNO  | DNAME         | LOC      |
  |------------------------------------|
  | 10      | ACCOUNTING    | NEW YORK |
  | 20      | RESEARCH      | DALLAS   |
  | 30      | SALES         | CHICAGO  |
  --------------------------------------

9.22 owa_util.todateファンクション

owa_util.dateTypeデータ型をOracleデータベースの標準のDATE型に変換します。

表9-21にowa_util.todateファンクションのプロパティを示します。

表9-21 owa_util.todateファンクション

プロパティ 定義

構文:

owa_util.todate(p_dateArray in dateType) return date;

パラメータ:

p_dateArray: 変換する値。

実行結果:

標準のDATE型。


9.23 owa_util.who_called_meプロシージャ

起動したPL/SQLコード単位に関する情報を(出力パラメータの形式で)返します。

表9-22にowa_util.who_called_meプロシージャのプロパティを示します。

表9-22 owa_util.who_called_meプロシージャ

プロパティ 定義

構文:

owa_util.who_called_me(
   owner          out      varchar2
   name           out      varchar2
   lineno         out      number
   caller_t       out      varchar2);

パラメータ:

owner: プログラム単位の所有者。

name: プログラム単位の名前。コール元のプログラム単位がパッケージにラップされている場合はパッケージの名前、コール元のプログラム単位がスタンドアロンのプロシージャまたはファンクションである場合はプロシージャまたはファンクションの名前。コール元プログラム単位が無名ブロックの一部である場合はNULL。

lineno: コールが実行されたプログラム単位内の行番号。

caller_t: コールを実行したプログラム単位のタイプ。パッケージ本体、無名ブロック、プロシージャ、ファンクションなど。プロシージャとファンクションは、スタンドアロンのプロシージャおよびファンクションの場合のみ。

実行結果:

なし