ORA-01403: Aucune donnée trouvée [PL/SQL] - SQL/NoSQL - Programmation
Marsh Posté le 15-08-2010 à 08:57:50
Salut Marty, 
si tu n'as pas encore résolu ton problème. 
Plusieurs remarques : 
 
 soit tu dois gérer ce cas d'une manière différente. Tu peux utiliser une clause EXISTS ou NOT EXISTS pour restreindre aux codes services existants ou identifier ceux qui n'ont pas de correspondance code interne-code externe
 soit tu dois gérer ce cas d'une manière différente. Tu peux utiliser une clause EXISTS ou NOT EXISTS pour restreindre aux codes services existants ou identifier ceux qui n'ont pas de correspondance code interne-code externe  
Après avoir modifié ta clause where (1ère remarque). Utilise plutôt une boucle FOR de type curseur. 
 
LOOP 
    UPDATE p_ctc SET p_ctc.dpmtincde = (SELECT r_dpmt.dpmtincde FROM r_dpmt WHERE r_dpmt.dpmtexcde = SubStr(c_maj_code_dpt.codcol,3,3)||'-'||lc_maj_code_dpt.entorg) WHERE p_ctc.ctcexcde = c_maj_code_dpt.ctcexcde 
-- Attention dans ton curseur à bien enlever les préfixes de tables et renommer les colonnes identiques. 
END LOOP; 
 
 . Evite aussi les valeurs en dur style 1000 1,5 3,3. Utilise plutôt des variables style v_long_codeent initialisées dans ta partie déclarative.
. Evite aussi les valeurs en dur style 1000 1,5 3,3. Utilise plutôt des variables style v_long_codeent initialisées dans ta partie déclarative.   
Voilà. Bon courage
Marsh Posté le 09-08-2010 à 13:39:22
Bonjour à tous, je dois mettre à jour le code interne d'une personne, ce code renvoie à un service travaillé.
Par exemple une personne X a comme code interne 1199
1199 renvoie au service Secrétariat par exemple.
Dans mon Pl/Sql j'utilise cette requête pour identifier toutes les personnes que je dois mettre à jour :
Cette requête me renvoie bien plus de 5000 enregistrements dont voici une poignée :
Ici on se rend bien compte que la colone dpmtincde (code du service) n'est pas à jour car la colonne DPMTEXCDE doit ressembler à la colonne ENTORG à peu de chose car la colonne DPMTEXCDE mixe CODCOL + ENTORG ce qui doit donner pour la première ligne par exemple :
Voici mon Pl/Sql au complet :
A l'exécution de mon Pl/Sql j'ai une erreur :
J'ai cherché un peu, il faut traiter l'exception, c'est à cause du select into, mais je ne sais pas comment la traiter. Merci pour votre aide.
Message édité par MaRTy59 le 09-08-2010 à 13:39:46