Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để đặt lại tất cả các chuỗi trong Oracle DB của tôi về giá trị 0?

Bạn không cần SQL động.

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;
/

Ví dụ (Tôi đang sử dụng USER_SEQUENCES thay vào đó):

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. Đừng để dòng suối đánh lừa bạn

  2. Tìm các bản ghi có phạm vi ngày trùng lặp trong SQL

  3. tải dữ liệu XLS khổng lồ vào Oracle bằng python

  4. Cách xem những đặc quyền nào được cấp cho giản đồ của người dùng khác

  5. PL / SQL có phải là ngôn ngữ để học nếu bạn có Oracle 11g không?