web-dev-qa-db-fra.com

SSIS - la valeur ne peut pas être convertie en raison d'une perte potentielle de données

Je suis relativement nouveau sur SSIS. J'essaie d'extraire des informations d'une base de données Oracle à l'aide de Microsoft OLEDB pour Oracle et j'utilise cette requête:

SELECT ID FROM Test

Je reçois un message d'erreur disant: the value cannot be converted because of a potential loss of data. Si je modifie la requête comme suit, cela fonctionne:

SELECT '1' FROM Test

Je pense qu'il échoue car l'ID n'est pas un entier. Cependant, le gestionnaire de connexions de fichiers plats montre que OutputColumnWidth est 50. Que fais-je de mal?

Mise à jour 16:30 GMT
J'ai approfondi un peu la question et il semble que ce soient les colonnes qui ont un histogramme de "fréquence" ou "aucune" qui causent les problèmes. Ceux avec un histogramme de "hauteur équilibrée" semblent être OK.

22
w0051977

C'est une chose courante. Dans de nombreux cas, la valeur par défaut pour les importations dans ssis à partir d'un autre type de système où les métadonnées des colonnes ne peuvent pas être déterminées est la valeur par défaut str (50). Puisque vous essayez de pousser cela dans une colonne à un caractère, cela suppose que vous risquez de perdre des données. Accédez simplement au composant source en cliquant avec le bouton droit de la souris et en choisissant "Afficher l'éditeur avancé ..."

Ensuite, accédez au dernier onglet (Propriétés d'entrée et de sortie)

Cliquez sur le + à côté de OLE DB Source Output

Cliquez sur le + à côté des colonnes de sortie

Mettez en surbrillance la colonne ID

Faites défiler jusqu'à la propriété Type de données de longueur à droite de la boîte de dialogue et modifiez-la de 50 à 1.

40
William Salzman