2011-01-20 8 views
2

Nous venons d'avoir un système externalisé et à première vue, je peux voir des tables et des champs avec des noms comme CASE ou FROM. C'est une base de données Oracle 10g et nous allons consommer ces données à partir de Java, Hibernate, C#, C++.Une table Oracle a été nommée en tant que mot réservé. Quels problèmes peuvent survenir?

Y at-il quelque chose de spécial dont nous devrions être conscients? Pour ce que j'ai vu dans d'autres publications, ce n'est pas recommandé car cela affecterait la lisibilité de notre code, mais y a-t-il d'autres problèmes majeurs ou plus sérieux que cela pourrait causer?

Merci!

Répondre

3

Pour éviter les mots réservés dans Oracle, vous devez les placer entre guillemets (dans ce cas, le nom de la table). IE:

SELECT * 
    FROM "CASE" 

Sinon, vous obtiendrez une erreur «ORA-00903: nom de table non valide». IIRC, Oracle traite le texte à l'intérieur des guillemets comme sensible à la casse de sorte que vous pouvez toujours obtenir l'erreur si le nom de la table a été créé en minuscules lors de l'utilisation de l'exemple de requête. En dehors de cela, je ne vois que le problème habituel avec des entités/attributs mal nommés.

+0

Oui, la sensibilité à la casse est le principal problème avec cela. –

+0

Ok, mais étant conscient de cela, rien de plus grand ne devrait se produire, non? Nous sommes encore au stade où nous pouvons demander que les noms soient changés. Est-ce que c'est digne? – jhurtado

+0

@Jhurtado: Si vous pouvez changer les noms des tables, faites-le. Je n'ai pas d'expérience avec les ORM pour savoir avec quelle facilité ils vont gérer la situation, mais c'est une source de préoccupation. –

Questions connexes