Snowflake stored procedure - sql - binding variables in the from clause

Viewed 56

Please help in binding the stored procedure argument into the sql statement given

create or replace procedure test(table_name varchar)
returns integer
language sql
as
$$
 select count(*) from ?
$$
2 Answers

You want to use an OBJECT INDENTIFIER

create or replace procedure test(table_name varchar)
returns integer
language sql
as
declare
  c number;
begin
  select count(*) into c from identifier(:table_name);

  return c;
end;
call test('test.test.testo');
TEST
3

Using TABLE():

create or replace procedure test(table_name varchar)
returns integer
language sql
as
declare
  c number;
begin
  select count(*) into c from table(:table_name);

  return c;
end;

CALL test('tab');
-- 0
Related