PL/SQLでSEQUENCEを再作成しようとしています。
やりたいことは
0. Aテーブルで100000~800000の間で最大のseqの値を取得
0. 取得したseqに+1をする
0. seqの値を初期値として、再度SEQを作成する
SQL
1DECLARE 2 lastNumberTmp NUMBER; -- SEQ_ZD034MST01の現在値 3 4BEGIN --実行の始まり 5 6 SELECT max(seq) into lastNumberTmp from A where seq between 100000 and 800000; 7 lastNumberTmp := lastNumberTmp + 1; 8 -- *********************************************** 9 -- * シーケンス再生成 * 10 -- *********************************************** 11 DROP SEQUENCE "ZDUSER"."SEQ_A"; 12 CREATE SEQUENCE "ZDUSER"."SEQ_A" MINVALUE lastNumberTmp MAXVALUE 900000 INCREMENT BY 1 START WITH 200000 CACHE 20 NOORDER NOCYCLE NOPARTITION; 13 14 DBMS_OUTPUT.PUT_LINE('seqの現在値'); 15 DBMS_OUTPUT.PUT_LINE(lastNumberTmp); 16 17 COMMIT; 18 19 20END; --実行の終わり 21/ 22
しかし、以下のエラーが出てしまいます。
ND; --実行の終わり エラー・レポート - ORA-06550: 行11、列5: PLS-00103: 記号"DROP"が見つかりました。 次のうちの1つが入るとき: ( begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge 06550. 00000 - "line %s, column %s:\n%s" *Cause: Usually a PL/SQL compilation error. *Action:
ネットで検索しましたがイマイチよくわからないので、どなたかご教示いただけると助かります。