Bonjour,
lors d'une migration de base Oracle Vers une base PostgreSQL grâce à ora2pg, je me suis rendu compte d'une chose bizarre et je ne sais pas comment va réagir PostgreSQL lors d'exécution.
Sous Oracle, on définit un trigger en le déclarant avec le code de la fonction.
Par exemple, cela donne:
Sous PostgreSQL, on procède comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 TRIGGER nom_trigger AFTER INSERT or UPDATE OF DATEAFFICHAGE ON nom_table For each row Declare * déclaration des variables * Begin * Code de la fonction * End;
Et c'est ici que se produit la bizarrerie: on se retrouve avec une sortie de fonction de type opaque. J'ai regardé sous Oracle, car ce type n'existait que la, et j'ai trouvé que c'était un type "interchangeable" (c'est à dire qu'il peut prendre n'importe quelle valeur de type). Alors voilà ma question:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE FUNCTION nom_fonction RETURNS OPAQUE AS $$ Declare * Déclaration des variables * Begin * Code de la fonction End; $$ LANGUAGE plpgsql; CREATE TRIGGER nom_trigger AFTER INSERT OR UPDATE ON nom_table FOR EACH ROW EXECUTE PROCEDURE nom_fonction;
1) Et-ce qu'il existe la même chose sous PostgreSQL?
2) Que renvoie une fonction de ce type pour que je change ce type opaque que PostgreSQL ne reconnait pas?
Voila.
Merci de me répondre.
champijulie
Partager