Comment puis-je obtenir les noms des colonnes d'une table dans Oracle?
J'ai besoin d'interroger la base de données pour obtenir le noms de colonne, à ne pas confondre avec les données de la table. Par exemple, si j'ai une table nommée EVENT_LOG
qui contient eventID
, eventType
, eventDesc
, et eventTime
, alors je voudrais récupérer ces noms de champ de la requête et rien d'autre.
J'ai trouvé comment faire dans:
Mais j'ai besoin de savoir: comment cela peut-il être fait dans Oracle?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez interroger l'USER_TAB_COLUMNS de table pour la table de la colonne de métadonnées.
USER_TAB_COLUMNS
àall_tab_columns
. Pour être sûr à 100% sur résultat vous pourriez speficy propriétaire.field_name = [field[0] for field in cur.description]
à partir du curseur de l'objet au lieu de pure requête sql.Dans SQL Server...
Type = 'V' pour les vues
Type = 'U' pour les tables
Vous pouvez faire ceci:
ou
Remarque: applicable seulement si vous connaissez le nom de la table et spécifiquement pour Oracle.
Pour SQL Server 2008, nous pouvons utiliser information_schema.les colonnes pour obtenir des informations d'une colonne
INFORMATION_SCHEMA
tables sont la norme ANSI tables de métadonnées. Tout bon, moderne SGBDR vous avez.Pour SQLite je crois que vous pouvez utiliser quelque chose comme ce qui suit:
Explication de sqlite.org:
Ce pragma retourne une ligne pour chaque colonne dans la table désignée. Colonnes du jeu de résultats inclure le nom de la colonne, le type de données, si la colonne peut être NULL, et la valeur par défaut de la colonne. Le "pk" colonne dans le jeu de résultats est de zéro pour les colonnes qui ne font pas partie de la clé primaire, et est l'index de la colonne de la clé primaire pour les colonnes qui font partie de la clé primaire.
Voir aussi: Sqlite.org Pragma Table Info
Que l'information est stockée dans la
ALL_TAB_COLUMNS
système de tableau:Ou vous pourriez
DESCRIBE
de la table si vous utilisez SQL*PLUS:ALL_TAB_COLUMNS
via l'officiel Oracle de la Base de données de Référence. Ce point de vue décrit les colonnes de la tables, des vues, de clusters accessibles à l'utilisateur actuel.Autres réponses suffisamment de répondre à la question, mais je pensais que je voudrais partager quelques informations supplémentaires. D'autres décrivent la "description de la table" syntaxe afin d'obtenir les informations de la table. Si vous voulez obtenir les renseignements dans le même format, mais sans l'aide de DÉCRIRE, vous pouvez faire:
N'a probablement pas beaucoup d'importance, mais je l'ai écrit plus tôt et cela semble correspondre.
Incorrect Syntax near '|'
erreurPour Oracle
Dans votre cas :
Pour MySQL, utilisez
Pour SQL Server:
Même c'est aussi l'un de la façon dont nous pouvons l'utiliser
Vous pouvez également essayer cela, mais il pourrait être plus d'informations que vous avez besoin de:
Mysql
Ce sera de retour d'une suite à quelque chose comme ceci:
Alors à tirer sur les valeurs que vous pouvez simplement
C'est également idéal pour le passage de l'entrée de façon dynamique depuis l'expression des besoins de l' '|' pour les entrées multiples, mais est aussi un moyen de conserver les données séparées et facile à ranger/pass pour les classes/fonctions.
Essayez de les lancer dans des données factices ainsi que pour la sécurité lors de l'envoi et de comparer ce qui a été renvoyé lors de la réception de toutes les erreurs.
Dans Oracle, il y a deux points de vue qui décrivent les colonnes:
DBA_TAB_COLUMNS décrit les colonnes de toutes les tables, des vues et des
les clusters dans la base de données.
USER_TAB_COLUMNS décrit les colonnes des tables, des vues, et
les clusters de la propriété par l'utilisateur actuel. Ce point de vue n'affiche pas l'
PROPRIÉTAIRE de la colonne.
La réponse est ici: http://php.net/manual/en/function.mysql-list-fields.php
J'utilise le code suivant dans votre cas:
vous pouvez exécuter cette requête
Il suffit de sélectionner la première ligne de la table , pour oracle :
select * from <table name> where rownum = 1;
Suis tombé sur cette question à la recherche pour l'accès aux noms de colonne sur Teradata, donc je vais ajouter de réponse à leur "goût" de SQL:
L'info est stockée dans le DBC dbase.
Obtenir des types de données est un peu plus impliqué:
Obtenir le type de colonne à l'aide de teradata tables système
Essayer cette
J'ai fait comme ceci
Il fonctionne même dans http://data.stackexchange.com dont le service des tables, je ne suis pas au courant de!