• ベストアンサー

PL/SQLでCREATE SEQUENCEの呼び出し

いつも参考にさせていただいてます。 select文で取得した日付の年下2桁をもとに 順序を取得したいと思っています。 CREATE SEQUENCEは seq_id_04 seq_id_05 seq_id_06   :    というように年ごとに作成されてあります。 seq_id_yy.nextval yyを取得した年に置き換えて実行したいのですが、 なかなかうまくいきません。 初めてのPL/SQLのため説明文におかしな部分があったらすみません。 ご存知の方がいましたら、ぜひぜひご教授ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.1

こんにちわ。 Execute immediate 文を使えばできる筈です。 先ずは、  vSQL varchar2(256);  vSeqNo NUMBER(8); のように変数が定義されていたとして、 vSQL にSequence をSelect するSQL 文を作成します。 こんな感じです。 → vSQL := 'SELECT seq_id_' || to_char(sysdate, 'YY') || '.nextval from dual'; そうしたら、 PL/SQL ブロックの中で、 execute immediate vSQL into vSeqNo; として下さい。

coroco
質問者

お礼

muyoshidさん。 実行できました!! ほんとうにありがとうございます。 まだまだPL/SQL、壁にぶち当たりそうですが、がんばります!