Хранимая процедура в Redshift для загрузки данных в таблицу - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть запрос sql, который выбирает данные из 4 таблиц, и я хочу использовать этот скрипт для загрузки данных в другую таблицу в Redshift, и я пытаюсь создать хранимую процедуру, но продолжаю получать ошибки. Ниже мой сценарий.

CREATE or replace PROCEDURE ABC1 (SOURCE_SYS CHAR(3), FILE_NBR BIGINT)
AS
BEGIN
  INSERT INTO SP1 (SOURCE_SYS,FILE_NBR)
  VALUES(
    SELECT 'WT', PK_ORDERNO
    FROM table_1
    JOIN table_2 ON table_1.file_nbr = table_2.file_nbr
    LEFT OUTER JOIN table_3 ON table_2.file_nbr = table_3.file_nbr
  )
END;

1 Ответ

0 голосов
/ 12 апреля 2020

Вы должны сделать это так:

CREATE OR REPLACE PROCEDURE ABC1 (SOURCE_SYS CHAR(3),FILE_NBR BIGINT)
AS $$
BEGIN


    INSERT INTO SP1 (SOURCE_SYS,FILE_NBR)

    SELECT 'WT',PK_ORDERNO FROM 
    table_1 join table_2 on table_1.file_nbr=table_2.file_nbr
    left outer join
    table_3 on table_2.file_nbr = table_3.file_nbr ;

END;
$$ LANGUAGE plpgsql;
...