Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/06/2005, 17h17   #1
Membre régulier
 
Avatar de champijulie
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 147
Points : 92
Points : 92
Par défaut types opaques

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:
Code :
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;
Sous PostgreSQL, on procède comme suit:
Code :
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;
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:
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
champijulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2005, 19h32   #2
Membre habitué
 
Inscription : mai 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 131
Points : 142
Points : 142
Une fonction rattachée à un trigger renvoie un "trigger", tout simplement

http://www.postgresql.org/docs/8.0/static/triggers.html
Quentin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2005, 09h53   #3
Membre régulier
 
Avatar de champijulie
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 147
Points : 92
Points : 92
Merci de m'avoir répondu car je n'était pas sure que la correpondance se fasse comme cela.

@ la prochaine
champijulie
champijulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h10.


 
 
 
 
Partenaires

Hébergement Web