Redshift SQL Процедура создания таблиц - PullRequest
0 голосов
/ 23 января 2020

Мне нужно создать ряд похожих таблиц, используя Redshift SQL (PostgreSQL). Я представляю себе вызов процедуры типа

call create_dc_table('table1');
call create_dc_table('table2');

и так далее. Я думаю, что я неправильно понял, как процедуры работают в этой среде. Я сделал это:

create or replace procedure create_dc_table(p_tblname varchar)
language plpgsql as $$
begin
  create table p_tblname
  (
    indent varchar(50),
    name varchar(32),
    datatype varchar(30),
    datalen varchar(30)
  );
end;
$$;

Я ожидаю, что p_tblname будет содержать значение "table1", которое я передал, чтобы оно читало create table table1 , но я могу это сделать? Если так, то как? Большое спасибо.

1 Ответ

0 голосов
/ 23 января 2020
create or replace procedure create_dc_table(p_tblname varchar)
as $$
begin
  execute 
      'drop table if exists '||p_tblname;
  execute
      'create table '||p_tblname
    ||'('
    ||'indent varchar(50), '
    ||'name varchar(32), '
    ||'datatype varchar(30), '
    ||'datalen varchar(30) '
    ||')';
end;
$$ language plpgsql;

call create_dc_table('test');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...