SnowConvert AI - Oracle - Type de données Rowid¶
Description¶
Chaque ligne de la base de données possède une adresse. (Référence linguistique Oracle SQL Types de données Rowid).
ROWID DataType¶
Description¶
Les lignes des tables organisées en tas qui sont natives de la base de données Oracle ont des adresses de ligne appelées « rowids ». Vous pouvez examiner l’adresse d’une ligne rowid en interrogeant la pseudocolonne ROWID. Les valeurs de cette pseudocolonne sont des chaînes représentant l’adresse de chaque ligne. Ces chaînes ont le type de données ROWID. Vous pouvez également créer des tables et des clusters qui contiennent des colonnes réelles ayant le type de données ROWID. (Référence linguistique Oracle SQL Types de donnéesROWID)
Modèles d’échantillons de sources¶
ROWID dans Create Table¶
Oracle¶
Snowflake¶
Insérer des données dans la colonne ROWID¶
Il est possible d’insérer des données dans les colonnes ROWID si l’insertion a un ROWID valide, comme le montre l’exemple ci-dessous. Malheureusement, la récupération du ROWID à partir d’une table n’est pas autorisée.
Oracle¶
Résultat¶
ROWID_COLUMN |
|---|
AAATtCAAMAAAADLABD |
Snowflake¶
Résultat¶
ROWID_COLUMN |
|---|
AAATtCAAMAAAADLABD |
Problèmes connus¶
Note
Le jeu de résultats étant trop large, la clause de limitation des lignes a été ajoutée. Vous pouvez supprimer cette clause pour récupérer le jeu de résultats.
1. Récupération ROWID d’une table qui ne possède pas de colonne explicite avec ce type de données
Comme indiqué dans le forum Snowflake, ROWID n’est pas pris en charge par Snowflake. La requête suivante affiche une erreur dans Snowflake car hr.employees ne contient pas de colonne ROWID.
Oracle¶
Résultat¶
ROWID |
|---|
AAATtCAAMAAAADLABD |
AAATtCAAMAAAADLABV |
AAATtCAAMAAAADLABX |
AAATtCAAMAAAADLAAv |
AAATtCAAMAAAADLAAV |
AAATtCAAMAAAADLAAD |
AAATtCAAMAAAADLABL |
AAATtCAAMAAAADLAAP |
AAATtCAAMAAAADLAA6 |
AAATtCAAMAAAADLABg |
Snowflake¶
Résultat¶
Danger
Erreur de compilation SQL : l’identificateur « ROWID » n’est pas valide
Type de données UROWID¶
Description¶
Oracle utilise les « rowids univerels » (urowids) pour stocker les adresses des tables organisées en index et des tables étrangères. Les tables organisées sous forme d’index ont des urowids logiques et les tables étrangères ont des urowids étrangères. (Référence linguistique Oracle SQL Type de données UROWID)
Modèles d’échantillons de sources¶
UROWID dans Create Table¶
Oracle¶
Snowflake¶
Insérer des données dans la colonne UROWID¶
Tout comme ROWID, il est possible d’insérer des données dans les colonnes UROWID si l’insertion a un UROWID valide, mais la récupération depuis une table n’est pas autorisée.
Oracle¶
Résultat¶
UROWID_COLUMN |
UROWID_SIZED_COLUMN |
|---|---|
*BAMAAJMCVUv+ |
*BAMAAJMCVUv+ |
Snowflake** SSC-FDM-0007 - MISSING DEPENDENT OBJECT « urowid_table » **¶
Résultat¶
UROWID_COLUMN |
UROWID_SIZED_COLUMN |
|---|---|
*BAMAAJMCVUv+ |
*BAMAAJMCVUv+ |
Problèmes connus¶
Note
Le jeu de résultats étant trop large, la clause de limitation des lignes a été ajoutée. Vous pouvez supprimer cette clause pour récupérer le jeu de résultats.
1. Récupération du UROWID d’une table qui n’a pas de colonne explicite avec ce type de données
La requête suivante affiche une erreur dans Snowflake car hr.countries ne contient pas de colonne ROWID (comme indiqué dans la documentation Oracle, UROWID est accessible avec l’instruction SELECT … ROWID).
Oracle¶
Résultat¶
ROWID |
COUNTRY_NAME |
|---|---|
*BAMAAJMCQVL+ |
Argentine |
*BAMAAJMCQVX+ |
Australie |
*BAMAAJMCQkX+ |
Belgique |
*BAMAAJMCQlL+ |
Brésil |
*BAMAAJMCQ0H+ |
Canada |
*BAMAAJMCQ0j+ |
Suisse |
*BAMAAJMCQ07+ |
Chine |
*BAMAAJMCREX+ |
Allemagne |
*BAMAAJMCREv+ |
Danemark |
*BAMAAJMCRUf+ |
Égypte |
Snowflake¶
Résultat¶
Danger
Erreur de compilation SQL : l’identificateur « ROWID » n’est pas valide
2. EWI should be displayed by SnowConvert AI¶
EWI doit s’afficher lors de la sélection d’une colonne UROWID. Il y a un élément de travail auquel ajouter le correspondant EWI.
Danger
Ce problème a été marqué comme critique et sera corrigé dans les prochaines versions.
EWIs connexes¶
SSC-EWI-0036: Type de données converti en autre type de données.
SSC-FDM-OR0030 : la pseudocolonne ROWID n’est pas prise en charge dans Snowflake..