Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak mogę zresetować wszystkie sekwencje w mojej bazie danych Oracle do wartości 0?

Nie potrzebujesz dynamicznego 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;
/

Przykład (używam USER_SEQUENCES zamiast tego):

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd java.sql.SQLException:ORA-00911:nieprawidłowy znak

  2. ORA-31011:Analiza XML nie powiodła się — nieprawidłowe znaki (oracle sql)

  3. Uciekający znak ampersand w ciągu SQL

  4. Zaktualizuj tabelę z innej tabeli w Oracle

  5. Oracle PL/SQL otrzyma IP v4 serwera?