ads 728x90 B

(ORA-00001) - ROWNUM & ROWID?

ROWNUM vs ROWID ?

Rownum (Numeric): với mỗi hàng được trả về từ câu truy vấn, ROWNUM cho biết số thứ tự mà Oracle trả về. Hàng đầu tiên có rownum là 1, hàng thứ hai có rownum là 2,... Vì vậy bạn có thể giới hạn số lượng hàng trong kết quả.
Rowid (Hexadecimal): được tạo tự động khi 1 hàng dữ liệu được Insert vào. Đối với mỗi dòng dữ liệu, Rowid trả về địa chỉ của nó. Rowid xác định giá trị duy nhất một hàng trong database, tuy nhiên các hàng trong những table khác nhau có thể được lưu trữ cùng nhau trong một cụm thì có thể có cùng rowid.

ROWID ROWNUM
Địa chỉ vật lý của hàng Số tuần tự, sẽ được phân bổ cho mỗi hàng trong kết quả truy vấn
Vĩnh viễn, không thay đổi trên hàng Tạm thời
16 bit thập lục phân Số nguyên
Duy nhất của 1 hàng và được tự động tạo ra khi insert Giá trị tăng tự động

SQL> SELECT ROWID "ROWID", ROWNUM "ROWNUM" FROM USER_INFO;

ROWID                ROWNUM
------------------ ----------

AAAWobAAFAAAOEzAAV          1 
AAAWobAAFAAAOEzAAO         
AAAWobAAFAAAOEzAAg          3
AAAWobAAFAAAOEzAAK         
AAAWobAAFAAAOEzAAq         
AAAWobAAFAAAOEzAAX         
AAAWobAAFAAAOEzAAb         
AAAWobAAFAAAOEzAAQ         
AAAWobAAFAAAOEzAAY         
AAAWobAAFAAAOEzAAl          10 
AAAWobAAFAAAOEzAAC          11 
AAAWobAAFAAAOEzAAr          12 
AAAWobAAFAAAOEzAAM          13 
AAAWobAAFAAAOEzAAn          14 
AAAWobAAFAAAOEzAAI          15

15 rows selected. 
Bạn không nên dùng Rowid làm khóa chính của bảng. Ví dụ nếu bạn xóa và thực hiện insert lại một hàng, thì Rowid có thể thay đổi. Nếu bạn xóa một hàng, thì Oracle có thể gán lại Rowid cho một hàng sẽ được insert sau đó.
(ORA-00001) - ROWNUM & ROWID? (ORA-00001) - ROWNUM & ROWID? Reviewed by Uit Lân on 12/06/2018 07:47:00 CH Rating: 5

Không có nhận xét nào:

ads 728x90 B
Được tạo bởi Blogger.