我在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(进程无法访问该文件,因为它正被另一个进程使用。)。
我怎样才能找到问题的确切位置?
我发现有关Azure Blob存储错误的一些信息:“进程无法访问该文件,因为它正被另一个进程使用”。
在这个article说标题中的错误消息通常是已经在使用的端口的结果。检查哪些存储服务(blob,表或队列)无法启动,并查看计算机上是否有任何消耗该端口。最常见的情况是blob存储无法启动,因为BitTorrent正在使用端口10000。
使用netstat
确定哪个进程具有该端口
netstat -p tcp -ano | findstr :10000
结束此过程并再试一次。
希望这可以帮助你。