Bonjour,
Soit deux tables tout ce qu'il y a de plus relationnelles par exemple :
Avec l'identifiant de remboursement renseigné à partir d'une sequence et d'un trigger. J'ai crée deux type objets correspondants, et un type varray de remboursements :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 create table assure( id char(13), nom varchar2(15), prenom varchar2(15), constraint pk_ass primary key(id) ); create table remboursement( idremb number(10), idassure char(13), valeur number(5,2), date_remb date, constraint pk_ben primary key(idremb), constraint fk_rembass foreign key (idassure) references assure );
J'ai ensuite crée une vue qui me permet de manipuler mes assurés et remboursements comme des objets :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 create or replace type typ_remb as object ( idremb number(10), valeur number(5,2), date_remb date ) ; create or replace type tab_remb is varray(10000) of typ_remb; create or replace type typ_assure as object ( id char(13), nom varchar2(15), prenom varchar2(15), remboursements tab_remb ) ;
J'aimerai savoir si c'est possible de pratiquer des insertions sur la vue VASSURE, c'est à dire en PL de créer un objet de type TYP_ASSURE contenant des objets de type TYP_REMB et d'inserer cet objet dans la vue afin que cela insere de nouvelles lignes dans les tables assure et remboursement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 create view VASSURE of typ_assure with object OID(id) as select id, nom, prenom, CAST (multiset (select typ_remb(idremb , valeur, date_remb) from remboursement B where B.idassure=A.id) as tab_remb) from assure A;
J'ai tenté un bête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 a:=typ_assure('2760613055403', 'BOYER', 'MAUD', null); insert into vassure values (a);Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Mais ça ne marche pas, dois je passer par un trigger [b]instead of[/b] ou y a t'il un autre moyen.
Partager