Creating a Snowflake View with a Sequence
Is it possible to use a Sequence inside a View?? I am using the following query:
CREATE VIEW < VIEW_NAME > (ID, VALUE1, VALUE2,...) AS
SELECT
SEQ1.NEXTVAL,
VAL1,
VAL2,
...
FROM
< TABLE >
But it is giving me the following error:
invalid identifier 'SEQ1.NEXTVAL'
The query works when not creating the view:
Solution 1:
use the full qualified name for the SEQ object, because if I am in a different DB/Schema, that is the scope used to look for SEQ
basically everything in a view should be fully qualified, tables, views, functions, sequences.
CREATE DATABASE test;
create SCHEMA test.test;
use SCHEMA test.test;
create SEQUENCE seq1;
create view test_v as SELECT seq1.nextval;
select * from test.test.test_v;
gives:
NEXTVAL |
---|
2 |
create SCHEMA test.not_test;
use SCHEMA test.not_test;
select * from test.test.test_v;
and now you get:
SQL compilation error: error line 1 at position 29 invalid identifier 'SEQ1.NEXTVAL'
Solution 2:
Here SEQ1 is not defined, that is the reason why you see the error. Documentation for Sequences is here:
https://docs.snowflake.com/en/sql-reference/sql/create-sequence.html