Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1658 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Probleme de DML + table imbriquée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle] Probleme de DML + table imbriquée

n°1309936
ffomnislas​h
Posté le 20-02-2006 à 19:25:45  profilanswer
 

:hello:  
 
J'ai un probleme pour mettre à jour une table imbriquée dans Oracle.
Voici comme sont construites les tables:
 

Code :
  1. //le type salaire
  2. CREATE TYPE TSalaire AS OBJECT
  3. (
  4. mois NUMBER(2),
  5. montant NUMBER(6)
  6. )
  7. //le type liste de salaire
  8. CREATE TYPE LTSalaire AS VARRAY(12) OF TSalaire ;
  9. //le type employe
  10. CREATE TYPE TEmploye AS[cpp] OBJECT
  11. (
  12. id_emp NUMBER(5),
  13. nom_emp VARCHAR2(50),
  14. prenom_emp VARCHAR2(50),
  15. code_emp VARCHAR2(10),
  16. date_nais DATE,
  17. lieu_nais VARCHAR2(50),
  18. adresse VARCHAR2(255),
  19. num_tel NUMBER(20),
  20. salaire LTSalaire
  21. )


 
Le but est de mettre a jour le salaire pour un mois donnée:
 

Code :
  1. 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" )
 

Code :
  1. UPDATE TABLE ( SELECT employe.salaire  FROM employe WHERE employe.id_emp = 22) TS SET montant = 1000
  2.                                                                                       *
  3. ERREUR à la ligne 1 :
  4. ORA-25015: impossible d'effectuer un DML sur cette colonne de vue de table
  5. imbriquée


Message édité par ffomnislash le 20-02-2006 à 19:26:51
mood
Publicité
Posté le 20-02-2006 à 19:25:45  profilanswer
 

n°1310052
olivthill
Posté le 20-02-2006 à 21:21:48  profilanswer
 

Je me demande à quoi sert le TS qui se trouve avant SET.
Peut-être qu'en enlevant, cela marcherait.

n°1310213
ffomnislas​h
Posté le 21-02-2006 à 02:23:33  profilanswer
 

c'est sensé donner un nom a la table afin de pouvoir y faire reference par la suite (TS pour table salaire). Je vais tt de meme tester sans mais plus maintenant ^^
 
 
edit --
J'ai testé sans le "TS" et le probleme persiste :/


Message édité par ffomnislash le 21-02-2006 à 13:26:22
n°1310509
olivthill
Posté le 21-02-2006 à 13:38:36  profilanswer
 

Domage que ça n'ait pas marché.
Essayons autre chose. Par exemple, pourquoi pas :

Code :
  1. UPDATE employe
  2.    SET employe.montant = 1000
  3. WHERE employe.id_emp = 22

n°1311632
ffomnislas​h
Posté le 22-02-2006 à 16:34:40  profilanswer
 

Cette update ne selectionne pas un mois en particulier.
 
Et employe.montant est un identificateur invalide.
 

n°1311783
Beegee
Posté le 22-02-2006 à 19:44:59  profilanswer
 

Reprenons au début :
 
dans la table employe tu as à la fois salaire et montant ?
 
Si c'est le cas :
 

Code :
  1. UPDATE (SELECT employe.salaire,
  2.                employe.montant
  3.         FROM employe
  4.         WHERE employe.id_emp = 2
  5.         AND mois = 5)
  6. SET montant = 2;


 
S'il n'y a que le champ salaire, et que tu as inventé montant (et c'est ce que tes commentaires portent à croire ...) :
 

Code :
  1. UPDATE (SELECT employe.salaire
  2.         FROM employe
  3.         WHERE employe.id_emp = 2
  4.         AND mois = 5)
  5. SET montant = 2;


 
ou encore (passe-partout) :
 

Code :
  1. UPDATE (SELECT *
  2.         FROM employe
  3.         WHERE employe.id_emp = 2
  4.         AND mois = 5)
  5. SET montant = 2;


Message édité par Beegee le 22-02-2006 à 19:46:31

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Probleme de DML + table imbriquée

 

Sujets relatifs
probleme de validation w3C CSS couleur de fondProblème avec bannière
probleme avec diaporama exporter en swf[resolu]Problème de variable
[RESOLU] problème insertion de données issues de csv dans une table[Résolu] Problème d'héritage d'héritage + redéfinition de méthode
tester connexion BDD oracle avec jscriptproblème connection VB6 vers MSSQL par ODBC W2003 SERVEUR
problème connection VB6 vers MSSQL par ODBC W2003 SERVEUR 
Plus de sujets relatifs à : [Oracle] Probleme de DML + table imbriquée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR