J'ai une feuille de calcul. Il contient des informations sur la société telles que le nom, l'adresse, le téléphone, le courrier électronique, etc. Tout ce que je veux faire est une importation plate dans SQL dans une table qu'il peut créer afin que je puisse y faire un peu de traitement. J'utilise simplement MS SQL Import Wizard. Je n'utilise pas BCP.DTS Import failing
Il obtient tout le chemin jusqu'à la fin et me donne cette erreur:
Blockquote Operation stopped...
Initialisation de flux de données Tâche (Succès)
Initialiser Connexions (Succès)
Définition de la commande SQL (succès)
Connexion de la source (Succès)
Réglage de connexion de destination (Succès)
Validating (Succès) Messages Attention 0x80049304: flux de données Tâche 1: Avertissement: Impossible d'ouvrir la mémoire partagée globale pour communiquer avec la performance DLL; les compteurs de performance de flux de données ne sont pas disponibles. Pour résoudre ce problème, exécutez ce package en tant qu'administrateur ou sur la console du système. (SQL Server Assistant Importation et Exportation)
Préparez-vous à exécuter (succès)
Pre-execute (Succès)
exécution (erreur) Messages erreur 0xc020901c: flux de données Tâche 1 : Il y avait une erreur avec Source - crm_company $ .Outputs [Excel Source Output] .Columns [Directions] sur la source - crm_company $ .Outputs [Excel Source Output]. L'état de la colonne renvoyée était: "Le texte était tronqué ou un ou plusieurs caractères ne correspondaient pas dans la page de codes cible.". (SQL Server Assistant Importation et Exportation)
Erreur 0xc020902a: flux de données Tâche 1: La "Source - crm_company $ .Outputs [Excel Source sortie] [.Columns Directions]" a échoué parce que la troncature a eu lieu, et disposition de troncature sur "Source - crm_company $ .Outputs [Sortie de la source Excel] .Columns [Directions]" spécifie l'échec de la troncature. Une erreur de troncature s'est produite sur l'objet spécifié du composant spécifié. (Importation SQL Server et Assistant Exportation)
Copie à [dbo] [crm_company] (Stopped) Messages d'erreur 0xc0047038. Flux de données Tâche 1: SSIS Code d'erreur DTS_E_PRIMEOUTPUTFAILED. La méthode PrimeOutput sur Source - crm_company $ a renvoyé le code d'erreur 0xC020902A. Le composant a renvoyé un code d'échec lorsque le moteur de pipeline appelé PrimeOutput(). La signification du code d'échec est définie par le composant, mais l'erreur est fatale et le pipeline a cessé d'être exécuté. Il peut y avoir des messages d'erreur affichés avant cela avec plus d'informations sur l'échec. (SQL Server Assistant Importation et Exportation)
post-exécution (Succès) Messages Informations 0x4004300b: flux de données Tâche 1: "Destination - crm_company" a écrit 469 lignes. (Importation SQL Server et Assistant Exportation)
Blockquote
Tout d'abord, j'ai dit DTS d'ignorer les erreurs de troncature. Les champs sources sont int ou nvarchar. Je modifie les mappages et les force à être int au lieu de float pour les colonnes requises. J'ai défini la taille de la colonne par défaut à 510 à partir de 255. Pour 2 colonnes, Directions et Notes, il a été décidé que Directions est nvarchar et que Notes est nvarchar (max). Je redéfinir les directions un afin qu'il soit traité comme nvarchar (max) et je peux voir que dans la table il crée après qu'il s'exécute. Cependant, quand il s'exécute il échoue CHAQUE FOIS avec l'erreur ci-dessus.
Je veux juste que ces données dans une table. C'est tout. Si je spécifie une table manuellement en premier et que j'importe, cela reste quand même des erreurs. Le texte le plus long dans Directions est de 978 caractères, il n'est donc pas énorme. Je m'en fous si ça tronque, je ne veux pas que ça s'arrête quand ça sent le besoin. Il y a 16 000 lignes importées et seulement 470 importées avant l'échec. Je ne sais pas quelle ligne échoue dans le fichier source car, étrangement, DTS ne tire pas les données dans la feuille de calcul, dans l'ordre dans lequel elles se trouvent. Allez comprendre. J'ai essayé de contourner les attaques stupides de DTS pour décider quels sont les formats de colonne en collant 20 lignes de données de texte, mais cela échoue toujours.
Est-il possible que l'une des valeurs de l'une des colonnes contienne le délimiteur de colonne? Ou le délimiteur de ligne? –
Ce n'est pas une importation CSV. C'est un fichier xlsx donc il n'y a pas de délimiteur. L'aperçu est bien et montre tout dans la bonne colonne. Si vous lui dites d'ignorer globalement la troncature et que j'importe une colonne contenant des données d'une longueur ne dépassant pas 1000 caractères dans un champ nvarchar (max), cela ne devrait poser aucun problème et aucune troncature ne devrait se produire. S'il trouve quelque chose à tronquer, il doit l'ignorer car c'est ainsi que je l'ai configuré, mais il ignore mes paramètres. – snert