sql >> Database teknologi >  >> RDS >> Oracle

Hvordan kan jeg nulstille alle sekvenser i min Oracle DB til værdien 0?

Du behøver ikke dynamisk SQL.

begin
for i in (select sequence_name from dba_sequences where sequence_name like '%SEQ_PR%') LOOP
  reset_seq(i.sequence_name);           --> this is just fine
end loop;
end;
/

Eksempel (jeg bruger USER_SEQUENCES i stedet):

SQL> select seq_pr1.nextval from dual;

   NEXTVAL
----------
         9

SQL> select seq_pr2.nextval from dual;

   NEXTVAL
----------
         8

SQL> begin
  2  for i in (select sequence_name from user_sequences where sequence_name like '%SEQ_PR%') LOOP
  3    reset_seq(i.sequence_name);
  4  end loop;
  5  end;
  6  /

PL/SQL procedure successfully completed.

SQL> select seq_pr1.nextval from dual;

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

SQL> select seq_pr2.nextval from dual;

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

SQL>



  1. MySQL og CASE WHEN med en række værdier

  2. Hvilke indstillinger giver SQL Server standard datotidsformat?

  3. Sådan viser du dato og pris i en MySQL-database og viser den i forskellige formater i PHP

  4. Vis dynamisk EXECUTE Output inden for pl/sql Fra sqlplus