SQL d'INSERTION en bloc D'erreurs
Je suis d'essayer d'insérer un fichier CSV dans Microsoft SQL Server Management Studio base de données comme ceci:
BULK INSERT [dbo].[STUDY]
FROM 'C:\Documents and Settings\Adam\My Documents\SQL Server Management Studio\Projects\StudyTable.csv'
WITH
(
MAXERRORS = 0,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
Mais j'obtiens les erreurs suivantes:
Msg 4863, Level 16, State 1, Line 2
Bulk load data conversion error (truncation) for row 1, column 9 (STATUS).
Msg 7399, Level 16, State 1, Line 2
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 2
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".
Malheureusement, je ne peux fournir le contenu de StudyTable.csv
, pour protéger la vie privée de la société, nous travaillons pour.
MODIFIER je peux témoigner de la validité de la csv
le fichier si. Il a été exporté à partir de OpenOffice version d'Excel, et je suis allé à travers et fait en sorte qu'il était valide.
EDIT2
Voici une version factice du fichier CSV:
1234,,,1234,1234,,"asdf","asdf","Z","asd",7/1/2010 12:23,8/5/2010 13:36,9/4/2010 13:36,"(asdf,1661,#1234,F,T)","F",,,"F",,"68866",1234,1234,1234,"F"
Ici est de créer un script pour le STUDY
table:
CREATE TABLE [dbo].[STUDY]
(
[STUDY_ID] INT IDENTITY(1,1) NOT NULL,
[PARENT_ID] INT,
[GROUP_ID] INT,
[WORKFLOW_NODE_ID] INT,
[STUDY_TEMPLATE_ID] INT,
[INSPECTION_PLAN_ID] INT,
[NAME] VARCHAR(255),
[DESCRIPTION] VARCHAR(4000),
[STATUS] VARCHAR,
[OLD_STATUS] VARCHAR,
[CREATED_ON] DATE,
[COMPLETED_ON] DATE,
[AUTHORIZED_ON] DATE,
[EVENTS] VARCHAR,
[NEEDS_REVIEW] CHAR,
[HAS_NOTES] CHAR,
[HAS_AUDITS] CHAR,
[STUDY_PART] CHAR,
[STUDY_TYPE] VARCHAR,
[EXTERNAL_REFERENCE] VARCHAR,
[CREATED_BY] INT,
[COMPLETED_BY] INT,
[AUTHORISED_BY] INT,
[ARCHIVED_CHILD_COMPLETE] CHAR
)
- Plus d'info va être nécessaire pour aider à cela. Votre erreur est survenue sur la ligne 1, alors peut-être créer et de poster une seule ligne fictive? Aussi, quel est l'ÉTUDE de la table de ressembler?
Vous devez vous connecter pour publier un commentaire.
Il semble que les données de votre
STATUS
colonne dans le .csv fichier est plus long que la définition du champ dans votre Table SQL.Vérifier la définition de ce champ et assurez-vous que les données que vous avez dans le .csv sera adaptée (à la fois la durée et le type).
CHAR(1)
, et je l'ai changé pourVARCHAR
; toujours pas de chance.VARCHAR(5)
œuvresLa première erreur est probablement parce qu'une colonne est trop grand pour s'adapter à la base de données. Première pensée est que le fichier CSV contiennent des en-têtes de colonne?
La deuxième erreur est très générique.
Faire l'un de vos champs de contenir une virgule dans le cadre de leurs données - par exemple 37, Rue Haute ce qui n'est pas enfermé dans les citations? J'ai tout perdre beaucoup de temps dans le passé à cause de "problèmes" dans les données (les données sont valides, pas tout à fait ce que l'on attend). Si votre fichier CSV est quelques milliers de lignes ou plus - ce qui se passe si vous essayez d'importer simplement les cent premiers (ou dix) lignes?