[Oracle]Nom objets tout en majuscule pourquoi

Résolu/Fermé
ranjok Messages postés 311 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 23 avril 2019 - 21 mars 2008 à 11:18
ranjok Messages postés 311 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 23 avril 2019 - 10 avril 2008 à 10:07
Bonjour,

Lorsque je crée des tables, procédures en minuscule par code sql sous Oracle, pourquoi ça devient tout en majuscule.
Si je fais un "select column_name from all_tab_columns where table_name = 'ma_table' ", je n'obtiens rien car le nom de table doit être majuscule pas comme je l'ai créée. Lorsque je mets au majuscule, les noms de colonnes résultant de cette requête sont aussi en majuscule, c'est la cata totale !!
Est-il possible d'éviter cette mise en majuscule ?

7 réponses

jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 231
21 mars 2008 à 11:25
bonjour,

a priori non, tout est stocké en majuscule dans les tables système d'oracle

cela a pour but de faire que ma_table = MA_TABLE = Ma_Table peut importe comment tu écris dans tes ordre sql, ce sera toujours le même objet qui est référencé

cdt
0
info2009 Messages postés 773 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 4 mars 2016 15
21 mars 2008 à 11:27
vous pouvez utiliser les commandes UPPER et LOWER
select column_name from all_tab_columns where lower(table_name )= 'ma_table'
lower : pour méttre en miniscule
upper :pour mêttre en majuscule
0
jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 231
21 mars 2008 à 11:27
il faudrait donc que tu utilises la fonction upper :

select column_name from all_tab_columns where table_name = upper('ma_table')
0
info2009 Messages postés 773 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 4 mars 2016 15
21 mars 2008 à 11:31
mais non d'aprés ce que j'ai compris que tous les objets sans stoké en majuscule dans la base donc il doit utiliser la fonction lower pour les mêttre en miniscule et les comparé avec 'ma_table' biensur sa n'influe pas sur la base de données
0
jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 231 > info2009 Messages postés 773 Date d'inscription samedi 20 octobre 2007 Statut Membre Dernière intervention 4 mars 2016
21 mars 2008 à 11:40
lower(table_name )= 'ma_table' <=> table_name = upper('ma_table')

mais l'utilisation du upper est plus logique car il fonctionnera quelle que soit la façon dont la chaine de caractère 'ma_table' (ou 'Ma_table', ou ...) est saisie dans un éditeur ou un source de programme
0
ranjok Messages postés 311 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 23 avril 2019 35
21 mars 2008 à 11:37
Je connais ces fonctions upper et lower mais certaines de mes tables ne sont ni totalement lower ni totalement upper par ex : CategTable !
Donc, tout est en majuscule dans Oracle, je vais m'y faire même si c'est la cata
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ranjok Messages postés 311 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 23 avril 2019 35
26 mars 2008 à 08:50
En fait, si je crée la table en minuscule et en mettant entre guillemets, est-ce que ça deviendra en MAJUSCULE quand même ?
0
jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 231
26 mars 2008 à 09:52
je te déconseille d'essayer, un jour dans une base, deux tables se sont retrouvées, dans les tables système de gestion des objets de la base avec un nom en minuscule (soit pas update direct dans les champs les tables system -une monstruosité- , soit par utilisation d'un outils externe à oracle qui ne respectait pas les règles)

il n'était plus possible de référencer ces objets, aucune commande sql ne fonctionnait dessus

donc ne touche pas à cela,
0
ranjok Messages postés 311 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 23 avril 2019 35
26 mars 2008 à 13:52
Si je comprends bien donc !
Le fait de mettre entre guillemet ne permet pas seulement d'avoir des noms d'objets avec espace sous ORACLE mais des noms d'objets avec minuscule aussi ??
0
jee pee Messages postés 39622 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 23 avril 2024 9 231
26 mars 2008 à 15:34
non, je n'ai jamais essayé et ne le tenterai pas ! j'ignore comment cette situation était arrivée dans la base
0
ranjok Messages postés 311 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 23 avril 2019 35
10 avril 2008 à 10:07
En résumé, le problème avec la mise entre GUILLEMETS est délicat en Oracle. J'ai tenté l'expérience mais c'est affreux car il faudra toujours mettre entre guillemets ces noms d'objets dans toutes les situations (sauf si c'est totalement majuscule donc c'est comme si on les avait créer sans guillemets)
0