Jeudi 8 juillet 2010 4 08 /07 /Juil /2010 23:09

 

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",
            DBMS_ROWID.ROWID_RELATIVE_FNO(rowid) "file_id",
            DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) "block_id",
            DBMS_ROWID.ROWID_ROW_NUMBER(rowid) "row"
     FROM MaTable ;


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;
Par Daniel Roesch - Publié dans : TABLES - INDEX
Ecrire un commentaire - Voir les 0 commentaires
Retour à l'accueil

Rechercher Articles Oracle SQL sur ce Site.

Loading

À lire aussi…

Download PDF Oracle

Rechercher sur le site

Oracle 10G - DBA -

Syndication

  • Flux RSS des articles
Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus - Articles les plus commentés