CREATE TYPE test_type_input AS (
id integer,
name character varying(200)
);
自定义函数
CREATE OR REPLACE FUNCTION public.test_function(
in_pro_arr test_type_input[],
OUT pro_len integer,
OUT out_name character varying[])
RETURNS record
LANGUAGE 'plpgsql'
COST 100
VOLATILE
AS $BODY$
DECLARE
loop_index integer;
pro_info record;
arr_length integer;
BEGIN
IF in_pro_arr is null or cardinality(in_pro_arr) <= 0 then
pro_len = -1;
out_name = null;
return;
END IF;
loop_index = 1;
arr_length = array_length(in_pro_arr,1);
pro_len = arr_length;
LOOP
pro_info = in_pro_arr[loop_index];
out_name[loop_index] = pro_info.name;
loop_index = loop_index + 1;
IF loop_index > arr_length THEN
exit;
END IF;
END LOOP;
END;
$BODY$;