gpt4 book ai didi

sql-server - 处理 Azure SQL DB 中的错误 "External tables are not supported with the provided data source type"?

转载 作者:行者123 更新时间:2023-12-02 02:41:23 24 4
gpt4 key购买 nike

根据 Microsoft Documentation ,Azure SQL 数据库现在可以使用外部表,并将 Blob 存储作为数据源。

我能够创建 TYPE = BLOB_STORAGE 的主 key 、凭证和数据源,根据下面的脚本,并注意到此版本不支持文件格式(也不知道如何处理)。

所以我尝试创建一个带有单个字段的外部表 VARCHAR(MAX) .因此我被这个错误消息卡住了:

Mensagem 46525, Nível 16, Estado 31, Linha 32
External tables are not supported with the provided data source type.



这是我一直在使用的脚本:
-- Cria uma chave mestra
CREATE MASTER KEY;
go

-- Cria credencial com a chave do Blob fsarquivo2 (essa é a chave)
CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential
WITH
IDENTITY = 'user',
SECRET = 'Q/rAy00000000000000000000000003Zo4RsxbIb57i2DoJTtU4JYQl1W5FDBIITapphJDRSv4OtniL3Dg=='
;

-- Aqui vc mostra onde fica a fechadura através da URI
CREATE EXTERNAL DATA SOURCE AzureStorage
WITH (
TYPE = BLOB_STORAGE,
LOCATION = 'wasbs://container0@fsblobstorage.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential
);


create external table luiz
(field varchar(MAX))
with
(
DATA_SOURCE = AzureStorage,
LOCATION = 'container0/terrcad.txt'
)

谁能帮我?

最佳答案

您所做的一切都是正确的,只是您尝试从 Blob 存储中的数据源创建外部表,但这是不可能的。您需要使用 BULK INSERT 或 OPENROWSET 来访问文件并导入它,而不是创建外部表。
以下是使用 BULK/INSERT 的示例:

BULK INSERT Product
FROM 'container0/terrcad.txt'
WITH ( DATA_SOURCE = 'AzureStorage');
使用批量插入。
SELECT * FROM OPENROWSET(
BULK 'inv-2017-01-19.csv',
DATA_SOURCE = 'AzureStorage',
FORMAT = 'CSV',
FORMATFILE='invoices.fmt',
FORMATFILE_DATA_SOURCE = 'MyAzureInvoices'
) AS DataFile;
更多信息请访问 this文章。

关于sql-server - 处理 Azure SQL DB 中的错误 "External tables are not supported with the provided data source type"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59326688/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com