2 votes

Que signifie l'échec du BCP ("BCP copy in failed"), mais pas le contenu du journal d'erreurs -e généré ?

Utilisation du PCA de mssql-tools Je suis sur CentOS7 et j'essaie de copier des données TSV dans une base de données MSSQL locale. BCP ne parvient pas à effectuer la copie et affiche l'erreur "BCP copy in failed". La commande exécutée est la suivante

TO_SERVER_ODBCDSN="-D -S MyMSSQLServer"
RECOMMEDED_IMPORT_MODE='-c' # makes a big difference, see https://stackoverflow.com/a/16310219/8236733
/opt/mssql-tools/bin/bcp "$TABLE" in "$filename" \
        $TO_SERVER_ODBCDSN \
        -U $USER -P $PASSWORD \
        -d $DB \
        $RECOMMEDED_IMPORT_MODE \
        -t "\t" \
        -e ${filename}.bcperror.log

Pourtant, les journaux d'erreurs créés par la commande sont vides. Qu'est-ce que cela signifie/implique ? Quelqu'un a-t-il d'autres conseils de débogage pour résoudre l'erreur "copy in failed" ?

1voto

jamie Points 695

Le journal des erreurs créé lorsque vous utilisez l'option -e est destiné à capturer les erreurs concernant les données elles-mêmes. Ainsi, le journal des erreurs contiendra des erreurs lorsqu'il y a un débordement de données (trop d'octets dans un champ destiné à une colonne qui en compte trop peu).

Les erreurs d'exécution, ou les erreurs avec l'application BCP elle-même ne sont pas capturées dans le fichier d'erreur créé par l'option -e.

Dans un environnement automatisé, si vous voulez capturer ou enregistrer de telles erreurs, vous devrez rediriger la sortie de la commande BCP vers un fichier pour le consulter ultérieurement ou même le charger dans une table de journalisation dans un tableau SQL.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X