Я работаю над проблемой совместимости, я хочу создать функцию SQL, которая может возвращать int или Varchar в зависимости от условий в программе.
Например, у меня есть функция с именем foo.
CREATE or REPLACE FUNCTION foo(param VARCHAR(100))
-- Which datatype I should use here?
RETURNS SOME_DATATYPE AS
$$
SELECT
CASE UPPER(param)
WHEN 'varchar' THEN CAST((SELECT 'varchar_value') AS varchar)
WHEN 'int' THEN CAST((SELECT 1426598) AS int)
ELSE param||' is not supported.'
END
$$
LANGUAGE SQL;
Для следующих запросов я ожидаю, что результат будет следующим.
select pg_typeof(foo('varchar')) from dual;
--I am expecting varchar as output.
select pg_typeof(foo('int')) from dual;
--I am expecting int as output.
Пожалуйста, предложите, есть ли такая функция, Или любую альтернативу, которую я могу попытаться достичь то же.