Mise à jour (relationnel-objet)
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)
Code:
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; |
ceci ne fonctionne pas qu'il y ait de l'héritage ou non...
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:
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:
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?