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 对对象名称区分大小写,因此 RECORDID
和 RecordID
可以是同一 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
,这可能就是这里发生的事情。
我有一个 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 对对象名称区分大小写,因此 RECORDID
和 RecordID
可以是同一 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
,这可能就是这里发生的事情。