error executing OPENROWSET (BULK) / Azure SQL Data

2019-01-29 12:29发布

问题:

I am logged into an Azure SQL Database, using "Active Directory - Integrated" authentication wherein I supply my company domain credentials only; no password.

I tried executing OPENROWSET on a .json file stored on my client (laptop):

Select BulkColumn
from OPENROWSET
(BULK 'C:\Users\username\Downloads\docs_by_day_IncludeDocs.json',
SINGLE_CLOB) as my_test

which returned:

Msg 4861, Level 16, State 1, Line 12
Cannot bulk load because the file "C:\Users\username\Downloads
\docs_by_day_IncludeDocs.json" could not be opened.
Operating system error code (null).

Does this error have something to do with Azure SQL Database trying to connect to my local client? Unlike some other posters, the error message does not explicitly identify an Access problem.

I appreciate any assistance!

回答1:

SQLAZURE has no idea of this path..

C:\Users\username\Downloads\docs_by_day_IncludeDocs.json

you will have to upload the doc to a storage account and try some thing like below

SELECT *
FROM OPENROWSET(BULK 'data/product.bcp', DATA_SOURCE = 'MyAzureBlobStorage',
 FORMATFILE='data/product.fmt', FORMATFILE_DATA_SOURCE = 'MyAzureBlobStorage') as data

Prior to that, you will need to create a storage account..

CREATE EXTERNAL DATA SOURCE MyAzureBlobStorage
 WITH ( TYPE = BLOB_STORAGE,
        LOCATION = 'https://myazureblobstorage.blob.core.windows.net',
        CREDENTIAL= MyAzureBlobStorageCredential);

References:
https://blogs.msdn.microsoft.com/sqlserverstorageengine/2017/02/23/loading-files-from-azure-blob-storage-into-azure-sql-database/