У вас есть несколько проблем с вашим кодом
Вы определили функцию как stable
, что согласно документации не разрешено, и вы получитеошибка при выполнении.
ОШИБКА: CREATE TABLE не допускается в энергонезависимой функции
Чтобы исправить это, необходимо изменить его наVOLATILE
insert into temp_table (a,b) select (a,b)
не работает, потому что заключение в скобки столбцов подразумевает, что вы рассматриваете их как
record
, а не как отдельные столбцы.
Исправляя эти два параметра, ваша функция должна работать нормально.
CREATE OR REPLACE FUNCTION sp_str_dsl_lp_ung(color smallint,
lpcount integer, update_userid character varying, OUT lp integer)
RETURNS integer
LANGUAGE plpgsql volatile
AS $function$
declare
--variables
variab int :=0;
begin
CREATE temporary TABLE temp_table (a int8, b int8) ;
insert into temp_table (a,b) select a,b from existing_table;
end
$function$
Демо