Skip site navigation (1) Skip section navigation (2)

Por favor, ayuda con esquemas

From: Jo Mateix <2uolap2(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Por favor, ayuda con esquemas
Date: 2012-03-13 22:18:08
Message-ID: CAOiapoN-aL0cdZmvhvfJD20yNry9aEq2TRHtODf6vRD-foLJLg@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Creo esta función en esquema public :

CREATE OR REPLACE FUNCTION zz()
  RETURNS text AS
$BODY$
DECLARE
declare resultado varchar(35);
BEGIN

select titulo into resultado
from empresas;

return resultado;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;
ALTER FUNCTION zz()
  OWNER TO postgres;

set search_path=esquema1,public;
select * from empresas;                        -- Me devuelve correctamente
el nombre de la empresa en esquema1
select zz();                                          -- Me devuelve
correctamente el nombre de la empresa en esquema1

set search_path=esquema2,public;
select * from empresas;                      -- Me devuelve correctamente
el nombre de la empresa en esquema2
select zz();                                  *Sigue devolviendo el nombre
de esquema1, porque?*
Por mucho que cambie el esquema con search_path, si no cierro la sesión, la
función zz() siempre se ejecuta en el esquema1.
Si cierro la sesión y la función se ejecuta primero en esquema2 devuelve el
resultado de este pero ya es imposible ejecutarla y que devuelva el
resultado del esquema1.

Es posible forzarle el esquema sobre el cual debe actuar? o bien limpiar la
memoria que se queda de la primera ejecución sin necesidad de cerrar la
sesión?

Versión postgres 8.3

Muchas gracias,

Jordi

Responses

pgsql-es-ayuda by date

Next:From: Linder Poclaba LazaroDate: 2012-03-13 22:37:55
Subject: Re: [pgsql-es-ayuda] Error al ejecutar una función ?==?ISO-8859-1?Q?en PostgreSQL
Previous:From: Erick UriasDate: 2012-03-13 20:41:17
Subject: Re: Caida de postgres 8.4

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group