0

1 つの SQL ファイルでいくつかのステートメントを実行しようとしていますが、うまくいきません。

declare 
  new_sequence INTEGER;
begin 
  select LAST_NUMBER + 1 
    into new_sequence 
    from user_sequences 
   where SEQUENCE_NAME = 'MLTS_SEQUENCE';

  execute immediate 'Create sequence Table_SEQ start with '
      || new_sequence ||' increment by 1';
end;

Eclipse データベース プラグインで「1 つのステートメントとして実行」オプションを指定してこのブロックを実行すると、機能します。

これらのブロックのそれぞれを 1 つのステートメントとして実行するように sqlscript をマークし、後で sqlplus または eclipse とは異なるスクリプトを実行するにはどうすればよいですか?

前と最後に GO を試してみましたが、それもうまくいきませんでした。

4

2 に答える 2

1

それが独自の行にあり、左揃えである限り、sql*plus で問題ないはずです。

SQL> create sequence MLTS_SEQUENCE start with 1 cache 20;

Sequence created.

SQL> select MLTS_SEQUENCE.nextval from dual;

   NEXTVAL
----------
         1

SQL> declare
  2    new_sequence INTEGER;
  3  begin
  4    select LAST_NUMBER + 1
  5      into new_sequence
  6      from user_sequences
  7     where SEQUENCE_NAME = 'MLTS_SEQUENCE';
  8
  9    execute immediate 'Create sequence Table_SEQ start with '
 10        || new_sequence ||' increment by 1';
 11  end;
 12  /

PL/SQL procedure successfully completed.

SQL> select Table_SEQ.nextval from dual;

   NEXTVAL
----------
        22
于 2013-03-08T15:16:21.217 に答える
1

sqlplus の適切な形式は次のとおりです。

declare
  ...
begin
  ...
end;
/
于 2013-03-08T15:20:25.510 に答える