Hola marcos hay diferencias en el resultado entre llamarla "select
tu_funcion()" y llamarla select * from tu_funcion(), que raro que te
devuelva lo mismo. La llamada con tipo RETURN TABLE no es necesario
llamarla con AS (esto es para tipo RECORD)
mira agarre tu función y le hice una homologa de ejemplo y veras la
diferencia de llamarla de una forma u otra:
CREATE OR REPLACE FUNCTION test2(
nombre_bd text
)
RETURNS table(nombre text , dba int, codificacion int ) AS
$BODY$
declare
bd text;
begin
if not exists (select * from pg_database where datname=nombre_bd) then
raise exception 'La Base de datos % no existe en nuestra base de
datos.', nombre_bd;
else
select datname into bd from pg_database where datname=nombre_bd
and datallowconn='TRUE';
if not found then
raise exception 'La base de datos ingresada,no pormite conexion';
else
return query select datname ::text , datdba::int ,
encoding::int from pg_database where datname=nombre_bd;
end if;
end if;
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
prueba llamandola de forma distinta y compara el resultado:
---llamada 1
select test2('postgres');
---llamada 2
select * from test2('postgres') ;
saludos
PD: creo que no me entendiste en el correo anterior donde te dije que la
llamaras: select * from public.f_usuario_login( vf_usuario character,
vf_clave character ) ----- :(
El 3/20/2016 a las 4:50 PM, Marcos Pastor escribió:
Que tal Anthony si de las 2 formas intente tambien usando AS y sale lo
que muestro en la nueva imagen
Saludos,
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda