2016-12-13 4 views
0

Erhalte den folgenden Fehler beim Kopieren einer Eingabedatei in eine leere db-Tabelle. Die Eingabedatei hat nur 56.732 Zeilen, aber ich einen Fehler bin immer auf Zeile 56733:Unerwartete Ende der Datei während der Verarbeitung Zeile

continue 
* * * * * * * * * * 
copy table temptable 
(
abc  = c(3), 
bcao = c(1), 
cba  = c(10), 
test = c(1)nl 
) 
from 'tempfile' 
Executing . . . 

E_CO0024 COPY: Unexpected END OF FILE while processing row 56733. 

E_CO002A COPY: Copy has been aborted. 

Wer irgendwelche Ideen, warum die versuchen, eine zusätzliche Zeile zu verarbeiten? Ich habe vier andere Dateien das exakt gleiche Format mit unterschiedlichen Daten und es wird gut verarbeitet.

Habe keine Ahnung, warum dies geschieht ...

Antwort

2

Die wahrscheinlichste Ursache ist, dass Sie einige Räume oder ähnlich nach der letzten Zeile von Daten. Sie haben beim Test eine neue Zeile als Trennzeichen festgelegt, sodass die Datei mit einer neuen Zeile enden muss. Löschen Sie alles nach Ihren Daten, das keine leere leere Zeile ist.

Als ein Beispiel. Verwenden Sie den Code unten:

DECLARE GLOBAL TEMPORARY TABLE test (
    v int 
) ON COMMIT PRESERVE ROWS WITH NORECOVERY; 

COPY test (
    v = c(5)nl 
) FROM 'J:\test.csv'; 

Wird in einem Fehler in Zeile 4 für die folgenden Daten ergeben:

34565 
37457 
35764 
45685 

und Fehler in Zeile 5 für diese Daten (Zeichensetzung verwendet Problem zu zeigen, aber es ist wahrscheinlich ein Leerzeichen oder eine Registerkarte in Ihrer eigenen Datei):

34565 
37457 
35764 
45685 
. 
Verwandte Themen