Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
Je suis actuellement en train de faire une migration d'Oracle vers Postgre et je rencontre quelques problèmes avec mes vues.
Certaines vues utilisent d'autres vues dans des jointures et postgre n'a pas l'air d'apprécier, alors que ça fonctionne parfaitement sous Oracle...
En gros ça donne ça:
CREATE OR REPLACE VIEW ma_vue AS
SELECT ma_table.donnee
FROM mon_autre_vue
LEFT OUTER JOIN ma_table ON mon_autre_vue.cle_etrangere=ma_table.cle_primaire;
Postgre me retourne cette erreur:
ERROR: relation "mon_autre_vue" does not exist
État SQL :42P01
Merci de votre aide!
Hors ligne
Normalement, ça marche (j'en ai des tonnes comme ça )
Est ce que l'autre vue est dans le même schéma (sinon il faut la préfixer par son schéma ou corriger le search_path) ? Est ce qu'elle est déjà crée au moment de l'exécution de cette requête ?
Quelle version de PostgreSQL ?
Marc.
Hors ligne
En fait je crois avoir trouvé l'origine de mon problème.
J'avais oublié d'enlever les double-quote autour du nom de la vue, il semblerait que ça vienne de ça (je saurais pas dire pourquoi d'ailleurs... )
A présent il reconnait ma vue.
Désolé pour le dérangement et merci pour cette réponse rapide!
Hors ligne
les double quote forcent entre autres le respect de la casse. Si la vue venait d'oracle, je présume que le nom était en majuscules entre double quotes ? Alors que le nom de la vue avait probablement été créé en minuscule, s'il n'avait pas été double quoté.
Ca vient du fait qu'Oracle par défaut stocke tous les noms d'objets en majuscule, et postgres en minuscule.
Marc.
Hors ligne
Effectivement, c'est bien un problème de casse. J'ignorais l'utilité des double-quote, je me coucherai moins bête ce soir
Hors ligne
Pages : 1