Generi c процедура в aws Redshift db - PullRequest
       13

Generi c процедура в aws Redshift db

0 голосов
/ 20 февраля 2020

Я пытаюсь разработать общую c процедуру в AWS Redshift DB, которая может принимать имя таблицы, имя схемы в качестве входных параметров и при вызове процедуры я получаю:

SQL Ошибка [500310] [42601]: Amazon Недопустимая операция: синтаксическая ошибка

Моя процедура:

 CREATE OR REPLACE PROCEDURE purgingtbl(vschema IN  VARCHAR,
                                        vtable  IN VARCHAR,
                                        columnname IN VARCHAR)
AS $$
DECLARE
 Srcedate            VARCHAR(15);

BEGIN
    Raise info 'vschema = %, vtable = %,columnname = %', vschema,vtable,columnname;

select into Srcedate count(*) from 'vschema'.'vtable' where src_proc_dt < (Current_date - 90) and 'columnname' is NOT NULL;
     ---RAISE INFO 'Date in  Landingzone table greater than 90 days is = %', Srcedate;

END;
$$ LANGUAGE plpgsql;

call purgingtbl('schemaname', 'tablename'); 

Может ли кто-нибудь помочь?

1 Ответ

0 голосов
/ 20 февраля 2020

Эта часть выглядит немного странно:

select into Srcedate count(*) from 'vschema'.'vtable'

Синтаксис для SELECT INTO:

SELECT
[ TOP number ] [ ALL | DISTINCT ]
* | expression [ AS output_name ] [, ...]
INTO [ TEMPORARY | TEMP ] [ TABLE ] new_table
[ FROM table_reference [, ...] ]

Таким образом, это, вероятно, должно быть:

SELECT COUNT(*) INTO Srcedate FROM 'vschema'.'vtable' WHERE ...

Вы можете проверить это, выполнив его как обычную команду вне хранимой процедуры.

...