プロが教える店舗&オフィスのセキュリティ対策術

いつも参考にさせていただいてます。

select文で取得した日付の年下2桁をもとに
順序を取得したいと思っています。

CREATE SEQUENCEは

seq_id_04
seq_id_05
seq_id_06
  :
  
というように年ごとに作成されてあります。

seq_id_yy.nextval
yyを取得した年に置き換えて実行したいのですが、
なかなかうまくいきません。

初めてのPL/SQLのため説明文におかしな部分があったらすみません。
ご存知の方がいましたら、ぜひぜひご教授ください。

A 回答 (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;
として下さい。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/07/27 09:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!