以下のVIEWをPROCEDURE内で使用しています。
CREATE OR REPLACE VIEW VW_KAIIN
(CODE,NAME,TEL,STARTYMD)
AS
SELECT * FROM KAIIN
WHERE STARTYMD <= TO_CHAR(SYSDATE,'YYYYMMDD')
※STARTYMDには有効な開始日付が入ります。
条件部分でSYSDATEではまずいことになり、
特定の日付を指定しなければならなくなりました。
VIEW自体にパラメータ渡しはできないということで、
CREATE OR REPLACE PROCEDURE TABLE_B_UPDATE
(I_YYYY IN TABLE_A.YYYYY%TYPE,
I_MM IN TABLE_A.MM%TYPE,
I_DD IN TABLE_A.DD%TYPE,)
PROCEDURE内でI_YYYY、I_MM、I_DDを条件に変更した
VIEWを動的に作成して、処理をしたいのですが、
こういった事は可能でしょうか?
そのまま書いてみましたが、CREATE部分でエラーが出てしまい、コンパイルできませんでした。
もし不可能である場合は、代替案をご教授いただけるとありがたいです。
どうかよろしくお願いします。
お礼
上記方法でやりたいことが作成できました。 VIEW作成以外もご紹介いただき感謝です。 ありがとうございました。
補足
元々、前任者が作っておったもので、 VIEW自体は、他のプログラムで呼び出したり、共通で使っているのは 間違いないと思います。 私自身、オラクルやPLSQLに触れるのが初めてなものですから、 VIEW自体でパラメータが使えたら一番よかったのですが。 プロシージャ内でVIEWの項目が基本軸として使用されており、 安易に、既存のVIEWのコピーを、プロシージャ内のパラメータを使用して、もうひとつ作ったら、いけるかなぁ、と思ってやってみたところ、ダメでしたので、質問させていただきました。 上記方法ためさせていただきます。 ありがとうございます。