Bonjour,
Existe t'il un moyen d'annuler le chargement des données fait avec sql loader si des données du fichier sont rejetées ? En d'autres termes, peut-on faire un rollback ou un undo quand il y a du bad ?
Merci par avance de votre aide.
Bonjour,
Existe t'il un moyen d'annuler le chargement des données fait avec sql loader si des données du fichier sont rejetées ? En d'autres termes, peut-on faire un rollback ou un undo quand il y a du bad ?
Merci par avance de votre aide.
Bonjour,
il me semble que lors de l'appel à sql loader il existe un paramètre 'errors' qui te permet de spécifier le nombre d'erreurs tolérées.
Cherche de ce côté là (je ne sais pas si ce paramètre fonctionne pour toute les versions de sqlldr)
voili, voilou
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
Merci kalyparker !
Le paramètre errors sert à dire combien de lignes en erreur sont acceptées dans le fichier bad (enregistrements en rejet) mais il n'annule pas le chargement des données valides. Or, moi, ce que je voudrais, c'est pouvoir annuler le chargement des données valides déjà intégrées si des enregistrements sont rejetés.
Bon, ben tant pis.il n'annule pas le chargement des données valides
Je ne crois pas que c'est possible de faire ça directement avec sql loader.
A mon avis, le plus simple c'est d'utiliser une table temporaire de chargement.
Tu teste ensuite si un fichier .bad à été créé, et si non et bien tu bascule les données chargé dans la table temporaire vers les bonnes tables.
It isn't that they can't see the solution, it's that they can't see the problem.
Mes Articles et Traductions (Microstrategy, Css et Javascript)
Si vous souhaitez contribuer à la rubrique BI, contactez-moi ou tout autre membre de l'équipe BI par MP.
Bonjour,
La création de table externe te permet de controler le nombre d'enregistrements rejetés et aprés tu peux remplir tes vrais tables
Le mécanisme étant proche de celui utilisé par l'utilitaire Sql*Loader,
l'écriture éventuelle d'un fichier log et d'un fichier de rejet requiert également
le droit d'écriture (WRITE) sur un répertoire Oracle.
Voici l'exemple suivant
Soit le fichier plat test_table_externe.txt suivant :
10,Emile,DUBOUDIN, Charcutier
20,Jocelyne,POTAUFEU,Epicière
30,Harry,COVER,Maraîcher
40,Hans,BURGER,Restaurateur
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
21
22
23
24
25 CREATE TABLE employes_ext ( numero NUMBER(7), nom VARCHAR2(30), prenom VARCHAR2(20), job VARCHAR2(20) ) ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY nom_directory_read ACCESS PARAMETERS ( records delimited by newline badfile nom_directory_write:'test_table_externe.bad' logfile nom_directory_write:'test_table_externe.log' fields terminated by ',' missing field values are null ( numero, nom, prenom, job ) ) LOCATION ('test_table_externe.txt') ) PARALLEL REJECT LIMIT 0 ;
Publications: http://schelabi.developpez.com/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager