在Snowflake环境调用序列nextval遇无效标识符错误的解决请求
解决Snowflake序列调用
nextval报无效标识符的问题 排查及解决步骤
校验序列引用的正确性
Snowflake对对象名称的大小写敏感,若创建序列时使用了双引号(如CREATE SEQUENCE "SEQ_AUTHOR_ID";),调用时必须带双引号:SELECT "SEQ_AUTHOR_ID".NEXTVAL;同时确认当前会话的数据库和Schema是否为
LIBRARY_CARD_CATALOG.Public,执行以下语句验证:SELECT CURRENT_DATABASE(), CURRENT_SCHEMA();若不符,切换到目标环境:
USE DATABASE LIBRARY_CARD_CATALOG; USE SCHEMA Public;检查序列权限
当前用户角色需拥有序列的USAGE权限,执行授权语句(替换YOUR_ROLE为实际使用的角色):GRANT USAGE ON SEQUENCE SEQ_AUTHOR_ID TO ROLE YOUR_ROLE;确认序列是否存在
查询信息架构验证序列是否成功创建:SELECT * FROM LIBRARY_CARD_CATALOG.INFORMATION_SCHEMA.SEQUENCES WHERE SEQUENCE_NAME = 'SEQ_AUTHOR_ID';若无返回结果,重新执行创建语句:
CREATE SEQUENCE SEQ_AUTHOR_ID START = 1 INCREMENT = 1;尝试替代调用语法
Snowflake支持函数形式调用序列,可换用以下语句测试:SELECT NEXTVAL('SEQ_AUTHOR_ID');
内容的提问来源于stack exchange,提问作者Phani Kumar
相关产品推荐
相关产品推荐

