我在Azure Blob存储中有CSV文件,并且想将文件内容插入到我的MS SQL表中。我在代码中使用的CSV文件和表格的列数相同。
我使用了此处指定的批量插入命令:Importing data from a file in Azure blob storage。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'xxxxxxxxx';
CREATE DATABASE SCOPED CREDENTIAL AzureBlobStorageCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '<I kept my SAS token here without leading question(?) mark>';
CREATE EXTERNAL DATA SOURCE GSCSVFileAzureBlobStorage
WITH ( TYPE = BLOB_STORAGE,
LOCATION = 'https://myaccount.blob.core.windows.net/csvfileshare',
CREDENTIAL= AzureBlobStorageCredential );
BULK INSERT RawItemData
FROM 'itemdata_csv_test.csv'
WITH (DATA_SOURCE = 'GSCSVFileAzureBlobStorage',FORMAT = 'CSV',FIELDTERMINATOR = ',',FIRSTROW=2);
如果我使用本地文件路径,则批量插入按预期工作,但是如果从blob中读取,则会出现此错误:
由于无法打开文件“ itemdata_csv_test.csv”,因此无法批量加载。操作系统错误代码32(该进程无法访问该文件,因为该文件正在被另一个进程使用。)
如何找到问题的确切位置?
答案 0 :(得分:0)
我发现一些有关Azure Blob存储错误的信息:“该进程无法访问该文件,因为该文件正在被另一个进程使用。”
在此article中说,标题中的错误消息通常是端口已被使用的结果。检查哪些存储服务(blob,表或队列)无法启动,并查看计算机上是否有任何东西正在占用该端口。最常见的情况是blob存储未启动,因为BitTorrent正在使用端口10000。
使用用法netstat
来确定哪个进程具有端口
netstat -p tcp -ano | findstr :10000
结束此过程,然后重试。
希望这可以为您提供帮助。