Comment puis-je obtenir colonne de type de données dans Oracle PL-SQL avec de faibles privilèges?
J'ai un accès en lecture seule pour quelques tables dans une base de données Oracle. J'ai besoin d'obtenir des informations de schéma sur certaines colonnes. Je voudrais utiliser quelque chose d'analogue à MS SQL sp_help
.
Je vois la table, je suis intéressé par répertoriés dans cette requête:
SELECT * FROM ALL_TABLES
Lorsque j'exécute cette requête, Oracle me dit "table pas trouvé de schéma", et oui, les paramètres sont corrects.
SELECT
DBMS_METADATA.GET_DDL('TABLE', 'ITEM_COMMIT_AGG', 'INTAMPS') AS DDL
FROM DUAL;
Après l'utilisation de mon Oracle traducteur universel 9000 j'ai supposé que ça ne fonctionne pas car je n'ai pas de privilèges suffisants. Compte tenu de mes contraintes comment puis-je obtenir le type de données longueur de données d'une colonne dans une table, j'ai accès en lecture avec un PL-SQL?
Vous devez vous connecter pour publier un commentaire.
ALL_TAB_COLUMNS
doit être interrogeable à partir de PL/SQL.DESC
est un SQL*Plus de commande.SELECT * FROM user_tab_columns WHERE table_name = 'FILL_IN_THE_TABLE_NAME' AND column_name = 'FILL_IN_THE_COLUMN_NAME';
Vous pouvez utiliser le
desc
commande.Cela vous donnera les noms de colonne, si la valeur null est valide, et le type de données (et de la longueur si applicable)
La meilleure solution que j'ai trouvé pour ce cas est
@Aaron Stainback, merci pour la correction!
Remarque: si vous essayez d'obtenir cette information pour les tables qui sont dans un autre SCHÉMA de l'utilisation de la all_tab_columns vue, nous avons ce problème que nos Applications utilisent un SCHÉMA différent pour des raisons de sécurité.
utiliser les éléments suivants:
Par exemple:
user_tab_columns
peut être remplacé parall_tab_columns
Oracle: Obtenir une liste de plein de type de données dans votre tableau:
Façon rapide et sale (par exemple, pour voir comment les données sont stockées dans oracle)
montrera que le mannequin de la colonne dans la table sys.double a typ=1 (varchar2), tandis que 10 est Typ=2 (nombre).
Vous pouvez essayer cette.