Snowflake 无法识别在 Alteryx 中创建的 table 中的列

Snowflake is not recognizing a column in a table created in Alteryx

我有一个 Alteryx 工作流,它 select 包含雪花 table 中的所有内容,将 RecordId 列添加到 table,然后使用新名称将结果上传回雪花.

问题是:Snowflake 无法识别 RecordID 列。

如果我使用 SELECT * FROM NUMBERED_TABLE,它会成功读取整个 table,显示每个字段,包括 RecordID。

但是如果我尝试 select 和 SELECT RECORDID FROM NUMBERED_TABLE 我会收到消息 SQL compilation error: error line 1 at position 7 invalid identifier 'RECORDID'

来自 UI,Snowflake 说该列确实名为 RECORDID。

尝试重命名列也不起作用。它只是说 RECORDID 列不存在。

我已经尝试通过基于自身创建一个新的来重新创建 table,它仍然无法识别它。

查询是 SELECT RECORDID FROM NUMBERED_TABLE,但您多次注意到名称是 RecordID

Snowflake 对对象名称区分大小写,因此 RECORDIDRecordID 可以是同一 table 中的两个不同列。 Snowflake 隐式地将对象名称大写,因此如果您 运行 查询 SELECT RecordID FROM NUMBERED_TABLE Snowflake 会将其隐式转换为 SELECT RECORDID FROM NUMBERED_TABLE。如果该列实际上是RecordID,它会报告找不到RECORDID。如果您有混合大小写的列名,防止隐式大写的方法是将对象名用双引号引起来:

select "RecordID" from NUMBERED_TABLE;

大多数 ETL 合作伙伴会将对象名称用引号括起来用于 Snowflake。我已经看到 Alteryx 为 Snowflake 做了这件事,所以如果它在源数据库中 RecordID,这可能就是这里发生的事情。