mod_plsqlで任意の数のパラメータを受け取るページを作る方法
プロシージャ定義
通常のページと同じように、プロシージャを定義する。ただし、引数は ( name_array IN OWA.vc_arr, value_array IN OWA.vc_arr ) とする必要がある。
プロシージャ名や型には自由度があるが、引数名は name_array と value_array でなければならない。引数名が一致しないと呼び出されずに 404 Not Found となる。
CREATE OR REPLACE PROCEDURE FLEXIBLE( name_array IN OWA.vc_arr, value_array IN OWA.vc_arr ) AS BEGIN HTP.HTMLOPEN; HTP.HEADOPEN; HTP.TITLE('FLEXIBLE PARAMETER PASSING'); HTP.HEADCLOSE; HTP.BODYOPEN; HTP.TABLEOPEN; HTP.TABLEROWOPEN; HTP.TABLEHEADER('NAME'); HTP.TABLEHEADER('VALUE'); HTP.TABLEROWCLOSE; FOR i IN 1 .. name_array.count LOOP HTP.TABLEROWOPEN; HTP.TABLEDATA(name_array(i)); HTP.TABLEDATA(value_array(i)); HTP.TABLEROWCLOSE; END LOOP; HTP.TABLECLOSE; HTP.BODYCLOSE; HTP.HTMLCLOSE; END; /
アクセス
通常はプロシージャ名でアクセスするのだが、任意の数のパラメータを受け取るページの場合、「!」をプロシージャの前につけなければならない。
どうしても外にそれを見せたくない場合には、Apacheで変換などをすればよいのだろう。