Impossible de récupérer une ligne du fournisseur OLE DB "BULK" pour le serveur lié "(null)"
J'essaie de charger ma base de données avec des tonnes de données à partir d'un .fichier csv de taille moyenne de 1,4 GO. Mais lorsque j'essaie d'exécuter mon code, j'obtiens une erreur.
Voici mon code:
USE [Intradata NYSE]
GO
CREATE TABLE CSVTest1
(Ticker varchar(10) NULL,
dateval date NULL,
timevale time(0) NULL,
Openval varchar(10) NULL,
Highval varchar(10) NULL,
Lowval varchar(10) NULL,
Closeval varchar(10) NULL,
Volume varchar(10) NULL
)
GO
BULK
INSERT CSVTest1
FROM 'c:\intramerge.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
--Check the content of the table.
SELECT *
FROM CSVTest1
GO
--Drop the table to clean up database.
DROP TABLE CSVTest1
GO
J'essaie de construire une base de données avec beaucoup de stockquotes. Mais je reçois ce message d'erreur:
Msg 4832, Niveau 16, État 1, Ligne 2 chargement en masse: Une fin inattendue de l'
le fichier a été rencontrée dans le fichier de données. Msg 7399, Niveau 16, État 1,
Ligne 2 Le fournisseur OLE DB "en VRAC" du serveur lié "(null)", a rapporté
un message d'erreur. Le fournisseur ne donne aucune information sur le
l'erreur. Msg 7330, Niveau 16, État 2, Ligne 2 Ne peut pas récupérer une ligne de
Fournisseur OLE DB "en VRAC" du serveur lié "(null)"
Je ne comprends pas bien de SQL, mais j'ai l'espoir d'attraper une chose ou deux. Quelqu'un espoir de voir ce qui pourrait être très évident.
source d'informationauteur Espen Skeie
Vous devez vous connecter pour publier un commentaire.
J'ai eu même problème.
Solution:
Vérifier l'CSV ou un fichier texte dans un éditeur de texte comme le bloc-notes+. Dernière ligne est peut-être incomplet. Le supprimer.
Ressusciter une vieille question, mais au cas où cela aide quelqu'un d'autre: après beaucoup d'essais et d'erreurs, j'ai enfin (enfin!) en mesure de se débarrasser de cette erreur en la modification de cette:
:
J'ai eu la même erreur quand j'ai eu un différent nombre de champs sont délimités dans mon CSV que des colonnes que j'ai eu dans ma table. Vérifiez si vous avez le bon nombre de champs dans
intramerge.csv
.J'ai eu cette erreur quand mon format de fichier (c'est à dire spécifié à l'aide de la
FORMATFILE
param) avait la largeur d'une colonne qui était plus petit que la taille de la colonne (par exemple,varchar(50)
au lieu devarchar(100)
).C'est une vieille question, mais Il semble que ma conclusion serait qu'ont mis en évidence certaines autres personnes ayant un problème similaire.
La valeur par défaut SSIS valeur de délai d'expiration s'affiche à 30 secondes. Cela rend tout service lié ou IO opération liée à votre paquet va bien au-delà de cette valeur de délai d'expiration et entraîne un dépassement de délai. Augmenter la valeur de délai d'expiration (changement de "0" (pas de délai d'attente) permettra de résoudre le problème.
J'ai eu cette exception lorsque le char champ dans ma table SQL était trop petit pour le texte à venir. Essayez de faire la colonne plus.
Cela pourrait être une mauvaise idée avec 1,5 GO, mais vous pouvez l'essayer sur un sous-ensemble (commencer avec quelques lignes):
... faites de votre INSERTION en bloc, puis
Cela vous aidera à déterminer si vos estimations de la colonne sont en place. Vous pouvez également trouver vos colonnes sont hors de l'ordre, ou l'INSERTION en bloc pourrait encore échouer pour une autre raison.
je veux juste partager ma solution à ce. Le problème était la taille des colonnes de la table, utilisez le type varchar(255) et tout devrait fonctionner.