Lorsque vous utilisez y a-t-il une carte qui lie les données Oracle Types à leurs codes Oracle renvoyés par la fonction de vidage () ou la fonctionnalité DBMS_SQL.DEFINE_COLUMNE? P> Je cherche ceci pour faciliter les tests, ainsi que pour localiser des types de données personnalisés tels qu'une personne imbriquée TABLEAU. Une table imbriquée existe dans l'une de mes tables et produit un code de type de données de 109. Comment rechercher le type associé au code de type de 109? Exemples ci-dessous de Dump et DBMS_SQL.DEFINE_COLUMN. P> Je dois supposer que cela soit disponible dans la base de données pour interroger en raison du fait que lorsque j'écris une requête, je définis les colonnes à l'aide du nom "Texte" de la colonne. Tapez et non le code. Alors, où est le nom du texte de mes types de données stockés, qu'ils soient «intégrés» ou «personnalisés»? Il doit être quelque part. P> Dump strud> p> Dump () CODE> ou lorsque vous utilisez
dbms_sql.define_column code> renvoie le code du type de données Oracle.
QUERY_ID: 2
OTHER_ID: 2
ACTIVE: 1
QUERY_NAME: 1
QUERY_DESC: 1
QUERY_DEF: 112
QUERY_TYPE: 2
CREATED: 12
UPDATED: 12
CREATED_BY: 2
UPDATED_BY: 2
3 Réponses :
Les types sont expliqués ici: DataTypes intégrés Oracle .
Type 13 est, je pense, comment dates code> sont représentés quand ils ne font pas partie de une table. En effet, vous utilisez la fonction
to_date code> de sorte que cela n'existe que comme une structure en mémoire et je pense peut varier d'architecture. En revanche, les valeurs des tables sont généralement stockées de manière indépendante de la plate-forme (je suis sûr que cela est vrai pour les types numériques, de toute façon). Référence . P>
create table t1 ( c1 date );
insert into t1 values ( sysdate );
commit;
SELECT
DUMP(sysdate,10) AS date_type
, dump(c1, 10) as date_table_type
FROM t1;
Typ=13 Len=8: 227,7,5,30,18,22,0,0
Typ=12 Len=7: 120,119,5,30,19,23,1
C'est des informations que j'ai déjà mais toujours sympa alors merci. Cela me laisse toujours sans être capable d'attacher les valeurs renvoyées des deux méthodes mentionnées dans ma question. Comment puis-je relier un code de type de 109 (qui est mon type personnalisé) Retour au nom de type qui dans mon cas nommé 'salaire_list' qui est défini comme Créer ou remplacer type salaire_list en tant que tableau de numéro; Code >. La fonction de décharge renvoie un code de 109 pour ce type.
La liste "intégrée" peut être vue à partir du texte de vue pour dba_tab_cols_v $ (qui sous-tend des vues comme dba_tab_columns). 12.2 devrait être quelque chose comme ceci:
C'est excellent et très utile. Cependant, cela me laisse toujours sans être capable d'attacher les valeurs renvoyées des deux méthodes mentionnées dans ma question. Comment puis-je relier un code de type de 109 (qui est mon type personnalisé) Retour au nom de type qui dans mon cas nommé 'salaire_list' qui est défini comme Créer ou remplacer type salaire_list en tant que tableau de numéro; Code >. La fonction de décharge renvoie un code de 109 pour ce type.
Utilisation des données obtenues à partir de ce lien ( Type Oracle Code mappings ) J'ai décidé de créer ma propre table et de le remplir avec les types de données Oracle mappant les codes de type Oracle vers leur "texte" du type de données.
Peut-être que quelqu'un va venir et montrera un moyen de Obtenez simplement le nom du type basé sur le code sans que ce travail personnalisé autour. Pour l'instant, cela devra devoir être ma réponse acceptée car cela me fait aussi près que possible de ce dont j'avais besoin en premier lieu. Les autres réponses m'aident certainement à venir ici. Malheureusement, il n'est toujours pas en mesure de retirer le nom réel des types personnalisés qui reviennent avec un code de 109. p> Exemple d'utilisation du package SYS.DBMS_TYPES FORT> P> < BlockQuote>
Pour sélectionner le code PL / SQL directement à partir du package: P>
blockQuote> Utiliser PL / SQL pour extraire les constantes: P>
blockQuote>