我有一个Alteryx工作流,它从雪花表中选择所有内容,向表中添加RecordId列,然后以新名称将结果上传到雪花。
问题是:Snowflake不识别RecordID列。
如果我使用SELECT * FROM NUMBERED_TABLE
,它会成功读取整个表,显示每个字段,包括RecordID。
但是如果我尝试用SELECT RECORDID FROM NUMBERED_TABLE
选择,我得到的消息是SQL compilation error: error line 1 at position 7 invalid identifier 'RECORDID'
在UI中,Snowflake说这个列确实叫做RECORDID。
尝试重命名列也不工作。它只是说RECORDID列不存在。
我已经尝试通过创建一个基于自身的新表来重新创建表,它仍然不能识别它。
查询是SELECT RECORDID FROM NUMBERED_TABLE
,但您注意到几次名称是RecordID
。
Snowflake对对象名称区分大小写,因此RECORDID
和RecordID
可以是同一个表中的两个不同列。雪花隐式大写对象名称,因此如果运行查询SELECT RecordID FROM NUMBERED_TABLE
,雪花将隐式地将其转换为SELECT RECORDID FROM NUMBERED_TABLE
。如果列实际上是RecordID
,它将报告找不到RECORDID
。如果您有一个混合大小写的列名,防止隐式大写的方法是将对象名称用双引号括起来:
select "RecordID" from NUMBERED_TABLE;
RecordID
,那么这可能就是这里发生的事情。