File: execute_immediate.sql

package info (click to toggle)
sqlfluff 3.5.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 34,000 kB
  • sloc: python: 106,131; sql: 34,188; makefile: 52; sh: 8
file content (34 lines) | stat: -rw-r--r-- 999 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
declare var_1 string;
declare var_2 string;

set var_1 = '''
insert into project.data_set.table
select
  "%s" as var_1,
  count(*) as column_1
from (
  select column_3
  from %s.column_2
  group by var_3 having count(var_3) > 1
)
''';

create or replace table project.data_set.table (var_1 string, column_1 int64)
options (
    expiration_timestamp = timestamp_add(current_timestamp(), interval 3 hour)
);

for m in (select var_1 from project.data_set.table) do
    set var_1 = m[0];
    execute immediate 'select 1;';
    execute immediate var_1;
    execute immediate format(var_2, var_1, var_1);
    execute immediate case
        when x then format(var_1, var_2) else format(var_1, m)
    end;
    execute immediate (select format(var_2, var_1, var_1));
    execute immediate 'SELECT 2 + 3' into y;
    execute immediate 'SELECT 2 + 3, 6' into y, z;
    execute immediate 'SELECT ? * (? + 2)' into y using 1, 3;
    execute immediate 'SELECT @a * (@b + 2)' into y using 1 as a, x as b;
end for;