Vous n'êtes pas identifié(e).
Pages : 1
Bonjour je suis en train de faire la migration de Oracle 11g vers PostgrSql 14, il y a des requête qui ne marche pas vu la syntaxe est différentes entre les SGBD.
Ma requête sur oracle est la suivante :
SELECT DISTINCT MAX(LEVEL) AS LVL, DEP.NAME, DEP.TYPE FROM USER_DEPENDENCIES DEP CONNECT BY NOCYCLE PRIOR NAME = REFERENCED_NAME
AND PRIOR TYPE = REFERENCED_TYPE START WITH REFERENCED_TYPE = 'SEQUENCE'
AND REFERENCED_NAME IN ('SEQ_ID_HABILITATION') GROUP BY DEP.NAME, DEP.TYPE ORDER BY MAX(LEVEL) ASC;
Sous Postgre j'ai essayé cette requête :
SELECT DISTINCT MAX(LEVEL) AS LVL, DEP.NAME, DEP.TYPE FROM USER_DEPENDENCIES DEP Where NAME = REFERENCED_NAME
AND TYPE = REFERENCED_TYPE AND REFERENCED_TYPE = 'SEQUENCE'
cela ne fonctionne pas car dans le message d'erreur il ne reconnait pas " USER_DEPENDENCIES"
Merci pour vos réponses .
Hors ligne
Bonjour,
la syntaxe CONNECT BY n'est pas reconnue sous postgres. Il faut utiliser la syntaxe de CTE récursive, voir https://www.postgresql.org/docs/14/quer … -RECURSIVE.
Julien.
https://rjuju.github.io/
Hors ligne
Je vous remercie pour votre réponse.
Mais la requête que j'ai utilisé sur postgre ne contient pas de Connect BY
SELECT DISTINCT MAX(LEVEL) AS LVL, DEP.NAME, DEP.TYPE FROM USER_DEPENDENCIES DEP Where NAME = REFERENCED_NAME
AND TYPE = REFERENCED_TYPE AND REFERENCED_TYPE = 'SEQUENCE'
Et il ne reconnait pas USER_DEPENDECIES !!
Hors ligne
USER_DEPENDENCIES est apparemment un catalogue spécifique à oracle. D'après https://docs.oracle.com/en/database/ora … 2A2F4334F6
USER_DEPENDENCIES describes dependencies between procedures, packages, functions, package bodies, and triggers owned by the current user, including dependencies on views created without any database links
J'imagine que l'équivalent sur postgres serait pg_depend : https://www.postgresql.org/docs/current … epend.html
Quelle information cherchez-vous à récupérer exactement ?
Julien.
https://rjuju.github.io/
Hors ligne
Oui j'avais trouver le pg_depend mais il ne décrit pas les relations entre les objets dans le schéma d'utilisateur en cours et c'est ça que j'essaie de retourner car :
Sous Oracle : USER_DEPENDENCIES décrit les dépendances entre les objets dans le schéma utilisateur courant.
Hors sous Postgre : Pg_Depend ne retour que les id
Hors ligne
Malheureusement, "schéma utilisateur en cours" n'a pas vraiment de signification pour postgres donc je ne sais toujours pas ce que vous cherchez à faire.
pg_depend ne retourne que des identifiants effectivement, mais vous pouvez soit utiliser pg_describe_object (https://www.postgresql.org/docs/current/functions-info.html ) soit joindre pg_depend aux catalogues voulus pour retrouver le nom correspondant.
Julien.
https://rjuju.github.io/
Hors ligne
Pages : 1