Unerwartetes EOF aufgetreten in BCP
Versuchen, importieren von Daten in Azure.
Erstellt eine text-Datei in das Management-Studio 2005.
Ich habe versucht, sowohl die Komma-und tabulatorgetrennte text-Datei.
BCP-IN -c -t, -r\ - n -U-S -P
Ich bekomme die Fehlermeldung {SQL Server Native Client 11.0]Unerwartetes EOF aufgetreten in der BCP-Datendatei
Hier ist das script, das ich verwendet, um die Datei zu erstellen:
SELECT top 10 [Id]
,[RecordId]
,[PracticeId]
,[MonthEndId]
,ISNULL(CAST(InvoiceItemId AS VARCHAR(50)),'') AS InvoiceItemId
,[Date]
,[Number]
,[RecordTypeId]
,[LedgerTypeId]
,[TargetLedgerTypeId]
,ISNULL(CAST(Tax1Id as varchar(50)),'')AS Tax1Id
,[Tax1Exempt]
,[Tax1Total]
,[Tax1Exemption]
,ISNULL(CAST([Tax2Id] AS VARCHAR(50)),'') AS Tax2Id
,[Tax2Exempt]
,[Tax2Total]
,[Tax2Exemption]
,[TotalTaxable]
,[TotalTax]
,[TotalWithTax]
,[Unassigned]
,ISNULL(CAST([ReversingTypeId] AS VARCHAR(50)),'') AS ReversingTypeId
,[IncludeAccrualDoctor]
,12 AS InstanceId
FROM <table>
Hier ist die Tabelle, es ist eingefügt in
CREATE TABLE [WS].[ARFinancialRecord](
[Id] [uniqueidentifier] NOT NULL,
[RecordId] [uniqueidentifier] NOT NULL,
[PracticeId] [uniqueidentifier] NOT NULL,
[MonthEndId] [uniqueidentifier] NOT NULL,
[InvoiceItemId] [uniqueidentifier] NULL,
[Date] [smalldatetime] NOT NULL,
[Number] [varchar](17) NOT NULL,
[RecordTypeId] [tinyint] NOT NULL,
[LedgerTypeId] [tinyint] NOT NULL,
[TargetLedgerTypeId] [tinyint] NOT NULL,
[Tax1Id] [uniqueidentifier] NULL,
[Tax1Exempt] [bit] NOT NULL,
[Tax1Total] [decimal](30, 8) NOT NULL,
[Tax1Exemption] [decimal](30, 8) NOT NULL,
[Tax2Id] [uniqueidentifier] NULL,
[Tax2Exempt] [bit] NOT NULL,
[Tax2Total] [decimal](30, 8) NOT NULL,
[Tax2Exemption] [decimal](30, 8) NOT NULL,
[TotalTaxable] [decimal](30, 8) NOT NULL,
[TotalTax] [decimal](30, 8) NOT NULL,
[TotalWithTax] [decimal](30, 8) NOT NULL,
[Unassigned] [decimal](30, 8) NOT NULL,
[ReversingTypeId] [tinyint] NULL,
[IncludeAccrualDoctor] [bit] NOT NULL,
[InstanceId] [tinyint] NOT NULL,
CONSTRAINT [PK_ARFinancialRecord] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
Es gibt tatsächlich mehrere hundert tausend eigentlichen Datensätze und ich habe dies getan, von einem anderen server, wobei der einzige Unterschied die version von management studio.
InformationsquelleAutor alemus | 2014-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die Datei tab-separierte dann die command line flag für die Spalte Trennzeichen sollte
-t\t
-t,
-t"\t"
? Wie ich-S"ServerName" -U"UserName"
? Auch, was ist-t,
?nicht nicht verwenden Sie Zitate,
-t
ist die Abkürzung für field terminator finde ichTatsächlich
tab
getrennte Werte ist der Standardwert fürbcp
so dass Sie nicht haben, um anzugeben-t
und-r
überhaupt. Das ist, was ich erlebt habe, indem ich michInformationsquelleAutor maxymoo
"Unerwartetes EOF" bedeutet normalerweise bedeutet, dass die Spalte oder Zeile-Abschlusszeichen ist nicht, was Sie erwarten
Das heißt, der command line Argumente, die für diese nicht übereinstimmen, wird die Datei
Typische Ursachen:
SSMS haben sollte nichts zu tun: es ist das format (erwartete vs tatsächliche), die Angelegenheiten
Ihre Befehlszeile hat
-r\n
die LF. Es ist möglich, die CR ist verwirrend Dinge.InformationsquelleAutor gbn
Nur ein FYI, dass ich auf diese gleiche genaue Fehlermeldung, und es stellte sich heraus, dass mein Ziel-Tabelle, die eine zusätzliche Spalte als die DAT-Datei!
InformationsquelleAutor Scooter
Ich jeden Fall, ich habe auf diese Fehler, es endet als ein Problem, in denen die Anzahl der Spalten in der Tabelle nicht die mit der Anzahl der Spalten mit Trennzeichen in der Textdatei. Der einfache Weg, um dies zu bestätigen ist, zum laden der text-Datei in excel und vergleichen Sie die Anzahl der Spalten von der Tabelle.
InformationsquelleAutor Clark Vera
Ich denke, die meisten von uns lieber real-world-Beispiele als syntax-hinweisen, also hier ist was ich getan habe:
bcp-LoadDB.dbo.im test C:\temp\test.txt -S 123.66.108.207 -U testuser -P testpass -c -r /r
Meine Daten wurde ein Auszug aus einem Unix-basierten Oracle-DB, die war Tabulator getrennt, und hatte einen LF-Zeilenende-Zeichen.
Weil meine Daten (tab getrennt) habe ich nicht geben Sie einen parameter-t der bcp-Standard ist tab.
Weil mein Zeilenabschlusszeichen war ein LineFeed (LF) Zeichen, dann habe ich -r /r
Da meine Daten alle geladen, die in char-Felder, die ich verwendet, den parameter-c
InformationsquelleAutor Dave Fish
Werde ich meine Erfahrungen mit diesem Thema. Mein Benutzer senden, der mich der Codierung UTF-8 und alles war in Ordnung arbeiten. Mein laden begann zu scheitern, wenn Sie aktualisiert die Kodierung, die Kodierung in UCS-2 LE Stückliste. Verwenden Sie notepad++ , überprüfen Sie diese Einstellung.
Zurückkehren zu UTF-8 behoben, mein problem.
Diese link half mir lösen mein Problem.
InformationsquelleAutor ProgSky