PL/SQL Utilisation de cursor - SQL/NoSQL - Programmation
Marsh Posté le 03-11-2005 à 11:26:01
Le 2nd curseur utilise la variable rec, remplie par le résultat du 1er curseur.
Il faut peut-être que tu fasses un OPEN / FETCH du 2ème curseur juste avant de regarder %NOTFOUND.
Et enfin, je comprends pas trrop ta logique ! Quand le code n'est pas trouvé dans type_flux, tu mets à jours TOUS les libellés de type_flux !!!
J'imagine que tu veux mettre à jour le libellé dans type_flux, à code égal, trouvé dans tmp_type_flux.
Voici un moyen de le faire, plus simple :
Code :
|
edit : si tu veux plutôt sortir un message d'erreur (dbms_output) par ligne manquant, il faut faire le COUNT dans la boucle plutôt, voire faire l'UPDATE et récupérer le nombre de lignes affectées (il me semble qu'on peut récupérer l'info).
Marsh Posté le 03-11-2005 à 11:55:42
Beegee a écrit : |
Ca marche beaucoup mieux de ta facon et c'est beaucoup moins compliqué. En fait il faudrait que je mette un message d'erreur dans un fichier de log quand le code que je recherche n'est pas présent dans la table. Est ce que tu sais comment faire??
Marsh Posté le 03-11-2005 à 12:08:53
Code :
|
Marsh Posté le 03-11-2005 à 12:15:52
Super merci beaucoup... je crois que c'est ca qui me manquait un fichier d'exemple
Marsh Posté le 03-11-2005 à 12:36:21
J'ai encore une petite question, j'ai repris ton exemple et j'ai modifié en
Code :
|
Mais j'ai un message d'erreur comme quoi ORA-20000: Erreur: répertoire / nom de fichier invalide...alors que mon fichier est bien dans le répertoire spécifié
Marsh Posté le 03-11-2005 à 14:40:30
Il faut que le fichier de configuration init.ora, utilisé pour ton instance Oracle, renseigne la valeur utl_file_dir :
utl_file_dir = 'D:\'
http://www.freelists.org/archives/ [...] 01386.html
Marsh Posté le 04-11-2005 à 08:01:46
ou alors créer une DIRECTORY et l'indiquer à la place de ce chemin
Marsh Posté le 03-11-2005 à 10:56:38
Je cherche à copier une table dans une autre. Pour chaque enregisrement je veux vérifier que le code de l'enregistrement est contenu dans la table de destination. S'il est bien contenu, je vais un update de la ligne sinon je dois refusé l'importation de la ligne et loggé l'erreur.
Mon problème c'est que mon update ne se déclenche jamais et je ne sais pas comment faire pour logger l'information en cas de refus d'importation.
Message édité par lapartdombre le 03-11-2005 à 11:05:26