Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   PostgreSQL (http://www.forosdelweb.com/f99/)
-   -   retorno record especifico (http://www.forosdelweb.com/f99/retorno-record-especifico-579970/)

xtstgo 25/04/2008 11:08

retorno record especifico
 
holas;

tengo un duda de como crear una funcion q me regrese las filas pero no quiero retornar todas las columnas de la tabla. he tratado de hacerlo con record pero me indica que debo señalar cuales seran las columnas retornadas.


Código PHP:

CREATE OR REPLACE FUNCTION p_accesousuario (par_usu_id charpar_usu_pas varcharpar_age_id charRETURNS record AS
$body$
declare
    
v_usuario record;
    
v_dummy  char(1);
BEGIN

    
/*------------------------------------------------------------------*/  
    /* Validacion de la Agencia                                         */
    /*------------------------------------------------------------------*/    
    
if exists (
               
select age_id
               from sc_agente
               where age_id 
par_age_idthen
                   
       
/*---------------------------------------------------------------*/  
       /* Rescate de los datos del usuario                          */
       /*---------------------------------------------------------------*/
       
select pco_idrol_idusu_nombreusu_paternousu_materno
       into v_usuario
       from sc_usuario
       where usu_id 
par_usu_id
        
and  age_id par_age_id;
       
       if 
not FOUND then    
          raise notice 
'No existe USUARIO %'par_usu_id;
       else
          if 
par_usu_pas <> v_usuario.usu_pas_md5  then                   
             raise notice 
'Clave Incorrecta ';
             
end if;
       
end if;     
    else    
        
raise notice 'No existe AGENCIA %'par_age_id;
    
end if;              

    return 
v_usuario;

END;
$body$
LANGUAGE 'plpgsql'

como lo pouedo hacer??.

de antemono gracias.

seyko 28/04/2008 03:50

Re: retorno record especifico
 
Esta bien, pero debes señalar las columnas retornadas:

select *
from p_accesousuario (par_usu_id char, par_usu_pas varchar, par_age_id char) as
(pco_id TIPO_DATO, rol_id, usu_nombre TIPO_DATO, usu_paterno TIPO_DATO, usu_materno TIPO_DATO)

Salu2

xtstgo 28/04/2008 08:58

Re: retorno record especifico
 
gracias por la respuesta, pero me surge una duda hay alguna manera en que me pueda retornar lo que deseo sin necesidad de especificar el nombre y el tipo de los datos q deseo retornar, lo pregunto porque si es asi cada vez q modifique la funcion tenfria que tambien modificar el cliente que llama a la funcion.

Gracias. XT

seyko 28/04/2008 10:13

Re: retorno record especifico
 
Puedes hacerlo creando un tipo y retornando ese tipo.
Por defecto, en postgres, se crea un tipo por tabla.
El tener que especificar los campos y su tipo, tiene logica, porque si no le dices como se llaman los campos y sus tipos, como te refieres a ellos?

Un saludo


La zona horaria es GMT -6. Ahora son las 10:45.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.