C'est quoi le ROWID ?
Chaque ligne (ROW) d'une table possède un IDENTIFIANT unique appelé ROWID.
Ex : AAANB6 AAF AADmRx AAC
AAANB6 = Sur 6 positions représente le n° de l'objet = data_object_id
AAF = Sur 3 positions représente le n° de fichier = file_id
AADmRx = Sur 6 positions représente le n° de bloc = block_id
AAC = Sur 3 positions représente le n° de ligne dans le bloc
Package DBMS_ROWID :
.ROWID_OBJECT() - Retourne le n° de l'objet
.ROWID_RELATIVE_FNO() - Retourne le n° de fichier
.ROWID_BLOCK_NUMBER() - Retourne le n° de bloc
.ROWID_ROW_NUMBER() - Retourne le n° de ligne dans le bloc
|
SQL> SELECT DBMS_ROWID.ROWID_OBJECT(rowid) "data_object_id", |
| DATA_OBJECT_ID | FILE_ID | BLOCK_ID | ROW |
| 53370 | 5 | 943913 | 0 |
| 53370 | 5 | 943913 | 1 |
| 53370 | 5 | 943914 | 0 |
| 53370 | 5 | 943914 | 1 |
| 53370 | 5 | 943914 | 2 |
| 53370 | 5 | 943915 | 0 |
| 53370 | 5 | 943915 | 1 |
Retourne les ROWID des lignes d'une table
| SQL> SELECT ROWIDTOCHAR(rowid), MonChamps FROM MaTable; |