Re: tiempo de vida de una tabla temporal

From: jeferson alvarez <jalvarez(at)renova(dot)com(dot)pe>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: tiempo de vida de una tabla temporal
Date: 2007-03-19 21:50:21
Message-ID: 45FF059D.7010901@renova.com.pe
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro Herrera escribió:
> jeferson alvarez escribió:
>
>
>> segun lo que digiste y lei seria asi lo que necesito pero tengo un error
>> de sintaxis que no veo
>>
>
> El error es que no estas usando la misma version que la documentacion
> que estas leyendo. Aca tu ejemplo funciona perfectamente, y el "ON" del
> caracter 47 de tu mensaje de error es precisamente el "on commit drop",
> como se puede ver cambiandolo por otra cosa:
>
> alvherre=# CREATE LOCAL TEMPORARY TABLE detalle_consaldo ON COMMIT DROP as
> alvherre-# select 1;
> SELECT
> alvherre=# CREATE LOCAL TEMPORARY TABLE detalle_consaldo aN COMMIT DROP as
> select 1;
> ERROR: error de sintaxis en o cerca de «aN» en carácter 47
> SENTENCIA: CREATE LOCAL TEMPORARY TABLE detalle_consaldo aN COMMIT DROP as
> select 1;
> ERROR: error de sintaxis en o cerca de «aN»
> LINEA 1: CREATE LOCAL TEMPORARY TABLE detalle_consaldo aN COMMIT DROP...
> ^
>
>
tome muy encuenta tus comentarios y si tenias razon la sintaxis que
estaba usando es para 8.2 y la version que tengo es 8.1.5
bueno realise los cambio sy quedo asi

CREATE LOCAL TEMPORARY TABLE detalle_consaldo (
id_articulo int4,
alma_in_id int4,
inv_do_saldo numeric(18,5),
aldt_do_cantidad numeric(18,5),
aldt_in_orden int4,
arti_in_id int4,
saldo_reg numeric(18,5),
aldt_do_subtotal numeric(18,5),
aldt_do_precio_prom numeric(18,5),
aldt_do_saldo_moneda numeric(18,5),
inv_do_monto numeric(18,5),
aldt_ch_id varchar(150)) WITHOUT OIDS ON COMMIT
DROP;

--creamos tabla temporal con saldos actuales en esta tabla
calcularemos los nuevos saldos
insert into detalle_consaldo select
i.id_articulo,i.alma_in_id,i.inv_do_saldo,at.aldt_do_cantidad,at.aldt_in_orden,at.arti_in_id,
(select sum(x.aldt_do_cantidad)+i.inv_do_saldo
from alm_t_detalle_1 x
where x.aldt_in_orden<=at.aldt_in_orden and
x.arti_in_id=at.arti_in_id and
x.aldt_ch_id=at.aldt_ch_id) as saldo_reg,

at.aldt_do_subtotal,at.aldt_do_precio_prom,at.aldt_do_saldo_moneda,i.inv_do_monto,at.aldt_ch_id
from alm_p_inventario i
right join alm_t_detalle_1 at on
i.id_articulo=at.arti_in_id and i.alma_in_id=$6
where at.aldt_ch_id=$13
order by i.id_articulo;

cuando ejecuto la aplicación una vez bien pero a la segunda me bota el
mismo error que tenia en un principiio es decir la aplicación solo
ejecuta una vez la funcion a la segunda ya no y bota el seguirnte error

"ERROR: 42P01: no existe la relación con OID 35095"

diaz atras me dijeron que eso se solucionaba con without oids lo posu
pero parece que lo hice mal por que continuo con el problemita
en que estoy fallando?

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Mario 2007-03-19 21:52:23 Re: Sobre indices y claves primarias
Previous Message Gabriel Colina 2007-03-19 21:41:39 Re: Sobre indices y claves primarias