Bonjour,
j'ai 5 types avec les 4 derniers qui héritent de employe_type
employe_type (not final not instantiable)
ingenieur_type (final instantiable)
responsable_type (idem)
administrateur_type (idem)
chef_projet_type (idem)
ceci ne fonctionne pas qu'il y ait de l'héritage ou non...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 create or replace type body employe_type as member procedure MAJNom(nom in varchar2) is begin dbms_output.put_line(self.nom_employe); self.nom_employe:=nom; dbms_output.put_line(self.nom_employe); end MAJNom; end;
je précise que ceci s'exécute bien mais les données n'ont pas été mises à jour (oui oui l'employe 3 existe bien), les put_line affichent les bonnes valeurs pourtant
est ce que self ne serait qu'une sorte de variable temporaire????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 declare var ingenieur_type; begin select value(i) into var from ingenieur i where i.id_employe=3; var.MAJNom('toto'); end; / dupont toto Procedure PL/SQL terminee avec succes.
par contre ça fonctionne bien avec le code ci-dessous mais du coup l'héritage ne servirait plus à rien puisque je serais obligé de faire une fonction MAJNom dans chaque sous type...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 create or replace type body employe_type as member procedure MAJNom(nom in varchar2) is begin update employe e set e.nom_employe = nom where e.id_employe=self.id_employe; end MAJNom; end;
une idée svp?
Partager