Bonjour,
Est il possible de faire un BCP IN sur une base contenant déja des données, uniquement pour recharger les données sans modification de sa structure (identique à celle de la base où le BCP out a été effectué) ?
Merci pour votre aide.
Bonjour,
Est il possible de faire un BCP IN sur une base contenant déja des données, uniquement pour recharger les données sans modification de sa structure (identique à celle de la base où le BCP out a été effectué) ?
Merci pour votre aide.
Un BCP in ne fait qu'ajouter des lignes dans une tables existante. S'il n'y a pas de contrainte d'unicité (ou cette contrainte n'est pas violée) tout marchera comme si la table était vide au départ.
Michael
Si je comprends bien, seules les lignes présentes dans le BCP OUT et absentes de la base du BCP IN seront ajoutées à cette dernière ?
Merci.
Euh - non, pas tout-à-fait.
bcp in va simplement ajouter les lignes dans le fichier à la table. Si il y a des doublons (soit via une clé unique, soit parce que toutes les colonnes sont les mêmes) alors la ligne est rejetée.
Maintenant - bcp travaille en mode transactionel. Par défaut, c'est du tout ou rien, et donc si il y a des doublons aucune ligne ne sera chargée.
On peut utiliser l'option -b 1 (cad faire un "commit" après chaque insert) pour que toutes les nouvelles lignes soient insérées, mais en général il est préferable d'avoir un fichier bcp propre.
On peut aussi utiliser un index avec "ignore_dup_key", qui fera que des inserts de doublons ne vont pas faire aborter le batch complet.
Je suggère de lire la doc sur bcp (dans le Utility Guide) pour de plus amples infos.
Michael
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