Я хочу написать хранимую процедуру, которая принимает текстовый параметр (имя_таблицы) и выполняет запрос на основе этого имени таблицы: выберите число (*) и записывает найденное значение в таблицу.
Это часть (SELECT COUNT(*) FROM VARTABLE_NAME)
, которую я не знаю, как реализовать в Amazon Redshift
CREATE OR REPLACE PROCEDURE SP_LOGGING (VARSTART INT, VARRUNID INT , VARPHASE VARCHAR, VARTABLE_NAME VARCHAR)
AS $$
BEGIN
IF VARSTART = 1 THEN
BEGIN
UPDATE AUDIT.RUN_TEST
SET TABLE_NAME = VARTABLE_NAME
,"no_of_records_at_start" = (SELECT COUNT(*) FROM VARTABLE_NAME)
END;
ELSEIF VARSTART = 0 THEN
BEGIN
UPDATE AUDIT.RUN_TEST
SET TABLE_NAME = VARTABLE_NAME
,"no_of_records_at_end" = (SELECT COUNT(*) FROM VARTABLE_NAME)
END;
END IF;
END;
$$ LANGUAGE PLPGSQL;