私は次の関数を持っています(カスタムタイプのセットを返します)
CREATE OR REPLACE FUNCTION myfunction(in_myvar integer)
RETURNS SETOF my_type AS
$BODY$
DECLARE
v_data my_type%rowtype;
v_another_var text;
BEGIN
FOR v_data IN (
-- I want to be able to do a SELECT INTO v_another_var in each iteration
-- of the loop, ideally so I can use this value throughout the select
-- statement e.g.:
-- SELECT INTO v_another_var regex_replace(col3, '[^a-zA-Z0-9 ]', '');
SELECT DISTINCT
col1
col2,
-- v_another_var AS some_column
-- etc.
-- perhaps use this v_another_var again here
-- as part of something else.
FROM mytable
WHERE v_another_var = 'test' + some_function() = 'something'
-- want to use the variable again here.
) LOOP
RETURN NEXT v_data;
END LOOP;
RETURN;
$BODY$
このように、変数を割り当てて、各 select ステートメントでループの一部として使用することは可能ですか? これが可能である場合でも、SELECT INTO ステートメントは私が持っている場所で機能しますか (col3 にアクセスできますか?)
この種の変数の使用法をpostgresで実現する方法はありますか?