recuperer les noms des colonnes d'une table (database)

recuperer les noms des colonnes d'une table (database) - SQL/NoSQL - Programmation

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

Reply

Marsh Posté le 09-08-2004 à 17:54:01   

Reply

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 ;)

Reply

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

Reply

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" )

Reply

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...


Message édité par lsdYoYo le 20-08-2004 à 14:13:21

---------------
If I want to fail and succeed, which I have done ?
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed