recuperer les noms des colonnes d'une table (database) - SQL/NoSQL - Programmation
Marsh Posté le 09-08-2004 à 19:41:13
Tu devrais trouver ton bonheur ici :
http://www.cise.ufl.edu/help/datab [...] ch2143.htm
Apparemment, si tu ordonnes par COLUMN_ID, ça doit répondre à tes besoins
Marsh Posté le 10-08-2004 à 13:41:35
Merci beaucoup. Je vais continuer mon projet et chercher un peu de mon cote aussi.
Merci encore.
piloupy
Marsh Posté le 20-08-2004 à 13:48:00
Salut,
Va demander à Oracle directement :
select * from user_tab_columns where table_name ='NOM_DE_LA_TABLE_EN_MAJUSCULES'
Sans vouloir dire de bêtises, il me semble qu'il enregistre les colonnes dans l'ordre où elles ont été créées...
De plus, si tu as les colonnes toto et titi, tu peux très bien faire un insert dans l'ordre que tu veux du moment qu'elle sont nommées explicitement :
insert into table ("titi", "toto" ) values ("val_titi", "val_toto" )
Marsh Posté le 20-08-2004 à 14:12:40
La réponse de Snoopy est valable pour bcp de moteur SQL. Ils stockent pratiquement TOUTES les infos d'une base dans des tables "système" :
- nom des tables de la base
- nom des colonnes des tables
- index
- contraintes, clé étrangères
- ...
Par contre les noms des tables systèmes sont différents pour chaque moteur (exemple : pour Interbase/Firebird la table contenant les noms des colonnes est "rdb$relation_fields" ). Un simple "select * from xxx" suffit, si on a les droits d'accès, bien sûr...
Marsh Posté le 09-08-2004 à 17:54:01
Bonjour,
J'aimerais recuperer le plus simplement possible les noms des colonnes d'une table SQL, dans l'ordre dans lesquels ils sont rentres.
Exemple :
Etudiants (ID, nom, prenom, date2naissance)
j'aimerais pouvoir recuperer "ID", "nom", "prenom" et "date2naissance" dans cet ordre pour ensuite faire des INSERT INTO.
Je suis sous Oracle8 et je programme en PL/SQL.
Je ne sais pas si yaurait une solution du style :
(perl)
foreach $column (keys (%tab)) { ... }
les "cles" (colonnes) devant etre retournees dans l'ordre de la table (j'insiste bien sur ce point).
Merci d'avance.
piloupy