Eine Textdatei mit SQL Server lesen
Ich versuche zu Lesen in einer text-Datei aus einer SQL-Abfrage (SQL Server 2005), bin aber ohne Glück überhaupt. Ich habe versucht, verschiedene Dinge mit EXEC und xp_cmdshell, die aber alle nicht funktionieren. Dies ist der Allgemeine Weg, ich habe versucht, diesen Ansatz:
CREATE TABLE temp (data varchar(2000));
INSERT temp EXEC master.dbo.xp_cmdshell 'type file.txt';
Versuche ich dann wählen Sie die Daten aus der temp-Tabelle. Ich habe gesucht, um eine Menge und ich kann nicht sagen, was ich immer falsch. Hilfe?
InformationsquelleAutor der Frage Markus O'Reilly | 2010-01-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was macht deine text-Datei Aussehen?? Jede Zeile einen Datensatz?
Werden Sie haben zu prüfen, die BULK INSERT Aussage - das sollte so Aussehen:
Hier, in meinem Fall werde ich den Import einer CSV-Datei, aber Sie sollten in der Lage sein, um eine Textdatei importieren.
Aus der MSDN docs - hier ist ein Beispiel, das hoffentlich arbeitet für eine text-Datei mit einem Feld pro Zeile:
Scheint zu funktionieren gut in meiner test-Umgebung 🙂
InformationsquelleAutor der Antwort marc_s
Gerade entdeckt:
Werde es pull-in den Inhalt der Datei als varchar(max). Ersetzen
SINGLE_CLOB
mit:SINGLE_NCLOB
für nvarchar(max)SINGLE_BLOB
für varbinary(max)Dank http://www.mssqltips.com/sqlservertip/1643/using-openrowset-to-read-large-files-into-sql-server/ dafür!!!!
InformationsquelleAutor der Antwort Cain
Brauchen Sie, um dies zu tun, wenn, oder, als Teil der normalen Datenbank-operation (ie, in response to a trigger, Termin, etc)?
Entweder Weg, du bist besser dran, erstellen Sie ein SSIS-Paket.
Habe ich nicht verwendet dbo.xp_cmdshell (nach deinem Beispiel), aber ich kann mir vorstellen, dass die Erfassung der output ist das Problem.
InformationsquelleAutor der Antwort 3Dave
wenn Sie möchten, Lesen Sie die Datei in eine Tabelle zu einer Zeit sollten Sie die Verwendung von BULK INSERT. AUF der anderen Seite, wenn Sie lieber zu Parsen der Datei Zeile für Zeile, um Ihren eigenen überprüft, sollten Sie einen Blick auf diese web: https://www.simple-talk.com/sql/t-sql-programming/reading-and-writing-files-in-sql-server-using-t-sql/ Es ist möglich, dass Sie benötigen, zu aktivieren, Ihre xp_cmdshell oder andere OLE-Automation-Funktionen. Einfach Google es, und das Skript wird angezeigt.
Hoffe, nützlich zu sein.
InformationsquelleAutor der Antwort Rodrigo
es für mich arbeiten, aber sparen als durch editplus ansi-Codierung für die Mehrsprachige
InformationsquelleAutor der Antwort udorb b