За това имате нужда от динамичен SQL:
CREATE OR REPLACE FUNCTION getDataByTable()
RETURNS text AS $$
DECLARE
tablename text;
l_result text;
BEGIN
tablename := gettablename('2');
execute format('select shg_code from %I', tablename)
into l_result;
RETURN l_result;
END;
$$ LANGUAGE plpgsql;
%I
Заместител на функцията format() правилно се справя с цитирането на идентификатори, ако е необходимо.