2017-03-21 4 views
0

Ich möchte eine PDF-Datei in SQL Server einfügen.PDF in SQL Server einfügen

habe ich versucht, zwei verschiedene Abfragen, aber immer noch die gleichen Fehler:

Msg 4861, Level 16, State 1, Line 11
Cannot bulk load because the file "C:\Users\XXX\Desktop\filename.pdf" could not be opened. Operating system error code 3(The system cannot find the path specified.).

Mein Code:

INSERT INTO [Testing].[dbo].[table00](FileContent) 
    SELECT BulkColumn 
    FROM OPENROWSET(BULK N'C:\Users\XXX\Desktop\filename.pdf', SINGLE_BLOB) as TheFile 

INSERT INTO [Testing].[dbo].[table00](FileContent, Blob) 
    SELECT 0, * 
    FROM OPENROWSET(BULK N'C:\Users\XXX\Desktop\filename.pdf', SINGLE_BLOB) rs 

Jede Beratung? Wie kann ich diesen Fehler beheben? Vielen Dank!

Hintergrund:

Ich versuche, eine PDF-Datei in diese spezielle Spalte einzufügen FileContent mit einem Datentyp von Bild in meinem Tisch testing.dbo.table00.

+3

Ist die MSSQL remote oder lokal? Der Dateipfad wird lokal für den MSSQL-Server ausgewertet, er kann nicht auf Ihren Dev-Rechner zugreifen! – Matten

+3

Alles wird im Kontext des SQL Server (Windows) -Dienstes und nicht der SQL Management Studio-Schnittstelle ausgewertet. Der Sicherheitskontext, unter dem der Dienst ausgeführt wird, benötigt auch Berechtigungen für den Standort, selbst wenn er lokal wäre. – Igor

+2

Image-Datentyp wird in einer zukünftigen Version von SQL Server entfernt. Vermeiden Sie die Verwendung dieses Datentyps in neuen Entwicklungsarbeiten, und planen Sie, Anwendungen zu ändern, die sie derzeit verwenden. Verwenden Sie stattdessen 'varbinary (max)'. [Siehe Details hier] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) –

Antwort

0

Klingt so, als ob entweder die Datei nicht existiert oder SQL Server keine Zugriffsberechtigung hat.

Beachten Sie, dass die zu OPENROWSET BULK geben Pfad zu dem SQL Server relativ ist, von dem nicht an den Computer Sie die Abfrage sind Ausführung (es sei denn, dass der Computer die SQL Server ist). In Ihrem Fall muss C:\Users\XXX\Desktop\filename.pdfauf dem SQL Server vorhanden sein, damit Ihre Abfrage erfolgreich ist.

Wenn die Datei auf dem Server vorhanden ist und Sie weiterhin diesen Fehler erhalten, ist SQL Server möglicherweise nicht berechtigt, auf die Datei zuzugreifen. Um dies zu überprüfen, klicken Sie mit der rechten Maustaste auf die Datei, wählen Sie Eigenschaften, Sicherheit, Erweitert und prüfen Sie den effektiven Zugriff für das SQL Server-Konto. Wenn das Konto keine Rechte für den Zugriff auf die Datei besitzt, weisen Sie die erforderlichen Berechtigungen zu.