Re: Problemas con SCHEMAS postgresql 8.4

From: Santiago Zarate <santiago(at)zarate(dot)net(dot)ve>
To: rootweiller <rootweiller83(at)gmail(dot)com>
Cc: vepug(at)postgresql(dot)org
Subject: Re: Problemas con SCHEMAS postgresql 8.4
Date: 2012-03-05 14:18:27
Message-ID: CAD_eom8EuQ9OUFyf-9Ruh064K2-otNnccCaJhT7RWz-WGf9HSA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: vepug

Juan, en teoria (Y en la practica), deberias agregar el esquema en el
que se encuentra tu funcion, a la ruta de busqueda de tu cliente
(pgadmin _creo_ que las agrega automaticamente apartir de cierta
version). Si revisas los mensajes de error que deberia estar
arrojandote el lenguaje, deberias poder ver que te dice que la funcion
"tal" no esta definida.... puedes hacer dos cosas:

select schema.funcion(parametros)

o, antes de llamar a tu funcion, (de hecho, mejor aun al inicializar
tu conexion):

SET search_path TO tuschema, otroschema, public; -- recuerda que
public es "el general" asi que no te recomiendo quitarlo de esa linea

Saludos

2012/3/5 rootweiller <rootweiller83(at)gmail(dot)com>:
> Saludos, me encuentro trabajando con una BD desarrollada con postgresql 8.4
> la misma tiene 5 schemas dentro de los cuales están las tablas y funciones
> necesarias para su funcionamiento (hasta ahí todo bien), el problema surge
> cuando se intenta desde afuera hacer un llamado a las funciones, las mismas
> no responden a pesar de que el sql impreso si funciona cuando se ejecuta
> desde el pgadmin3
>
> ejemplo:
>
> SELECT fn_insert_cable(coaxial, '2'); si ejecuto esto desde cualquier
> lenguaje de programación no pasa nada (estamos usando PHP5), pero si lo
> ejecuto desde pgadmin3 lo agrega sin problemas. Probamos la conexión con BD
> y está correcta, el usuario que usamos para conectarnos tiene los permisos
> necesarios y es el owner de la BD sobre la cual estamos trabajando.
>
> Un ejemplo de una de las funciones:
>
> CREATE FUNCTION fn_insert_aleacion(v_codaleacion integer, v_aleacion
> character, v_caraleacion character) RETURNS integer
>     LANGUAGE plpgsql
>     AS $$
> DECLARE
>
> BEGIN
>  INSERT INTO cab_fundicion.t_aleacion(e_codaleacion, c_aleacion,
> c_caracteristicas) VALUES (v_codaleacion, v_aleacion, v_caraleacion);
>  return 1;
>
>  EXCEPTION
>
>   WHEN unique_violation THEN RAISE NOTICE 'Duplicidad de Codigo';
>   return 0;
>   WHEN others THEN
>   RAISE NOTICE 'Error Insertando el Registro';
>   return 0;
>   END;
> $$;
>
>
> Gracias de antemano, espero su ayuda...
>
> --
> Juan Vargas
> (58) 414-9926363
> http://www.bolivarlug.org.ve
> http://zerobytes.com.ve
> Linux User 461138
>
>

--
Santiago Zarate
  +(507) 64271684
  santiago(at)zarate(dot)net(dot)ve

"La mejor forma de hacer que un adolecente lea un libro es vetandolo.
Cuando alguien que ostenta una figura de autoridad dice, 'Danos tu
libro', creo que esos estudiantes piensan 'Debe haber algo poderoso en
esas palabras'." - Erin Gruwell

"The best way to get a teenager to read a book is to ban it. When
someone who is a daunting authority figure says, 'Give us your book',
I think these students [thought], 'There must be something powerful in
these words'. " - Erin Gruwell

In response to

Responses

Browse vepug by date

  From Date Subject
Next Message rootweiller 2012-03-05 15:17:04 Re: Problemas con SCHEMAS postgresql 8.4
Previous Message rootweiller 2012-03-05 13:47:27 Problemas con SCHEMAS postgresql 8.4