我正在使用 Synapse Analytics 查询包含单列的简单 .csv 文件。 这是我正在使用的查询:
SELECT a.[Product Code]
FROM OPENROWSET(
BULK ('https://<mystorage>.dfs.core.windows.net/<somefolder>/<filename>.csv'),
FORMAT = 'CSV',
PARSER_VERSION = '2.0',
HEADER_ROW = TRUE
) as a
WHERE a.[Product Code] NOT IN ('123:123', '234:234234')
这个查询非常简单,所以我不确定哪里会出错。 但是,我在执行的时候遇到了一个错误:
Error converting data type varchar to bigint.
经过一番调查,我发现问题是由参数中的冒号符号(':')引起的。
我试图通过将参数转换为 VARCHAR 或 NVARCHAR 来解决错误,但这没有帮助。
我也找不到任何方法来转义冒号。
因此,我求助于用不同的符号替换冒号,如下所示:
SELECT a.[Product Code]
FROM OPENROWSET(
BULK ('https://<mystorage>.dfs.core.windows.net/<somefolder>/<filename>.csv'),
FORMAT = 'CSV',
PARSER_VERSION = '2.0',
HEADER_ROW = TRUE
) as a
WHERE REPLACE(a.[Product Code],':',';') NOT IN ('481154559;asdfa')
伙计们,你有什么更好的方法来处理这个问题的建议吗?