Hola gente, tengo un problema que no he resuelto:

Tengo 2 tablas: ARTICULOS y EXISTENCIAS

articulos
CREATE TABLE public.articulos
(
  art_cod character varying(5) NOT NULL DEFAULT ''::character varying,
  art_descri character varying(20) DEFAULT ''::character varying,
  CONSTRAINT articulos_pkey PRIMARY KEY (art_cod)
)

"1";"clavos"
"2";"martillos"
"3";"madera"

existencias
CREATE TABLE public.existencias
(
  art_cod character varying(5) DEFAULT ''::character varying,
  exis_ubic character varying(20) DEFAULT ''::character varying,
  exis_cant numeric(8) DEFAULT 0
)

"1";"lima";100
"1";"ica";130
"2";"ica";1390
"3";"pisco";390
"3";"piura";20

Y una función que simplemente debe relacionar ambas tablas y darme un listado de
los artículos con el detalle de su ubicación y cantidad.
Lo que hago en la función es primero cargar dos tablas temporales y luego
el inner join. Se que mejor sería el inner join directamente, pero quiero saber
por qué no funciona de esta manera, si en el MS sql server siempre me ha funcionado
bien.


CREATE OR REPLACE FUNCTION public.test1 (out art_cod varchar,out art_descri varchar,
out exis_ubic varchar, out exis_cant numeric) returns setof record as
$body$

select * into temp table t_arti from public.articulos;
select * into temp table t_exis from public.existencias;

select a.art_cod,a.art_descri,e.exis_ubic,e.exis_cant
from t_arti a inner join t_exis e on a.art_cod= e.art_cod;
$body$
 LANGUAGE 'sql' VOLATILE;



Cuando llamo a la función con esta línea:

select * from modelo.test1()


Aparece este error:

ERROR: relation "t_arti" does not exist
SQL state: 42P01
Context: SQL function "test1"


¿Por qué no funciona con las tablas temporales??????

Gracias por su ayuda

 

Get your FREE, LinuxWaves.com Email Now! --> http://www.LinuxWaves.com
Join Linux Discussions! --> http://Community.LinuxWaves.com