hello 
J'ai un probleme pour mettre à jour une table imbriquée dans Oracle.
Voici comme sont construites les tables:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| //le type salaire
CREATE TYPE TSalaire AS OBJECT
(
mois NUMBER(2),
montant NUMBER(6)
)
//le type liste de salaire
CREATE TYPE LTSalaire AS VARRAY(12) OF TSalaire ;
//le type employe
CREATE TYPE TEmploye AS[cpp] OBJECT
(
id_emp NUMBER(5),
nom_emp VARCHAR2(50),
prenom_emp VARCHAR2(50),
code_emp VARCHAR2(10),
date_nais DATE,
lieu_nais VARCHAR2(50),
adresse VARCHAR2(255),
num_tel NUMBER(20),
salaire LTSalaire
) |
Le but est de mettre a jour le salaire pour un mois donnée:
UPDATE TABLE ( SELECT employe.salaire FROM employe WHERE employe.id_emp = 2) TS SET montant = 2 WHERE mois = 5
L'erreur : ( l'étoile doit se trouver sous le 'm' de "SET montant" )
1 2 3 4 5
| UPDATE TABLE ( SELECT employe.salaire FROM employe WHERE employe.id_emp = 22) TS SET montant = 1000
*
ERREUR à la ligne 1 :
ORA-25015: impossible d'effectuer un DML sur cette colonne de vue de table
imbriquée |
[/code]
Partager