Gerardo Herzig te indicaba que podías hacer la llamada con:
(con asterisco, o con los campos que quieras devolver.)
por ejemplo select campo1, campo2, etc, from tu_funcion();
saludos
El 3/20/2016 a las 5:46 PM, Marcos Pastor escribió:
ok entendido y si no quiero todos los campos sino ciertos ahi si tengo
que usar parametros out y que retorne setof record verdad?? y para
llamar a la funcion es tambien con select * from
public.f_usuario_login( vf_usuario character, vf_clave character )
???
Saludos,
El 20 de marzo de 2016, 15:32, Anthony Sotolongo <asotolo...@gmail.com
<mailto:asotolo...@gmail.com>> escribió:
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,