Re: Problema con Tipos Compuestos

From: Jaime Casanova <systemguards(at)yahoo(dot)com>
To: Fernando Aguada <fernandoaguada(at)yahoo(dot)com(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org, Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
Subject: Re: Problema con Tipos Compuestos
Date: 2005-01-28 15:29:12
Message-ID: 20050128152912.95606.qmail@web50001.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

--- Fernando Aguada <fernandoaguada(at)yahoo(dot)com(dot)ar>
escribió:
>
> CREATE TYPE planicaj AS
> (cori int2,
> ctipo int2,
> cabre varchar,
> cletra varchar,
¨¨¨¨¨¨¨¨¨¨¨¨¨¨
> csucur int2,
> cnumcomp int4,
> cimpu int2,
> cimpefv numeric,
> cimpcht numeric,
> cimptic numeric,
> cimptar numeric,
> cimpotr numeric,
> cimpret numeric,
> cconce varchar);
> ALTER TYPE planicaj OWNER TO postgres;
>
>
> La Funcion en cuestion
>
> declare rplacaj planicaj%ROWTYPE;
> declare rparaco paracomp%ROWTYPE;
>
> begin
> select * into rparaco from paracomp;
>
> for rplacaj in select 1 as
> cori,ctipo,tipocomp.cabre,cletra,csucur,cnumcomp,
>
>
totalven.cimpu,cimpefv,cimpcht,cimptic,cimptar,cimpotr,cimpret,cconce
> from totalven
> left join tipocomp on
> totalven.ctipo=tipocomp.cnume
> where ccaja=pfecha and cmodo=2 and
> cneto<>0 and
> (totalven.cctacte=1 OR
> totalven.cctacte=2 AND
> totalven.ctipo=rparaco.ctrecve)
> loop
> rplacaj.cletra:=cast(rplacaj.cletra varchar 3);
> return next rplacaj;

lo que estas devolviendo es cletra de rplacaj, que es
del tipo 'planicaj' que tu definistes arriba y ese
campo letra es varchar no varchar(1) asi que esta bien
que te devuelva mas de un caracter.

>
> end loop;
> return;
> end
>

Ahora me meto ha hacer observaciones que nadie me
pidio:
1) no es tu tabla demasiado grande? aunque eso puede
afectar al rendimiento mas me preocupa por que puede
ser (algunas veces) señal de un mal diseño.
2) si cletra va a tener necesariamente un solo
caracter por que no declararlo char(1) en la tabla y
en el tipo de dato? (de hecho deberian ser iguales en
ambos me parece).
Pregunta para Alvaro, se gana algo cambiando de
varchar(1) a char(1)? Mi suposicion es que si, estoy
en lo correcto o me estoy confundiendo de motor de
base de datos?

atentamente,
Jaime Casanova

_________________________________________________________
Do You Yahoo!?
Información de Estados Unidos y América Latina, en Yahoo! Noticias.
Visítanos en http://noticias.espanol.yahoo.com

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Diego Gil 2005-01-28 15:40:15 Re: ID de usuario
Previous Message Alvaro Herrera 2005-01-28 15:21:37 Re: Busco un manual