Я сохранил pro c в Redshift в plpg sql. Когда я запускаю call test3()
, я получаю исключение Amazon Недопустимая операция: Количество строк: 1; Не удалось выполнить 1 оператор.
CREATE OR REPLACE PROCEDURE test3()
LANGUAGE plpgsql
AS $$
DECLARE
found_record RECORD;
integer_var integer;
BEGIN
SELECT * INTO found_record FROM tbl WHERE id='ABC';
IF FOUND THEN
GET DIAGNOSTICS integer_var = ROW_COUNT;
RAISE EXCEPTION 'Row Count: %', integer_var;
END IF;
END;
$$
Но когда я запускаю call test4()
, я получаю
0 строк, затронутых CALL, успешно выполненных
CREATE OR REPLACE PROCEDURE test4()
LANGUAGE plpgsql
AS $$
DECLARE
found_record RECORD;
integer_var integer;
BEGIN
EXECUTE 'SELECT * FROM tbl WHERE id=\'ABC\'' into found_record ;
IF FOUND THEN
GET DIAGNOSTICS integer_var = ROW_COUNT;
RAISE EXCEPTION 'Row Count: %', integer_var;
END IF;
END;
$$
Как получить доступ к FOUND при выполнении динамического c запроса