Ver Mensaje Individual
  #1  
Antiguo 13-02-2010
FlacoNet FlacoNet is offline
Miembro
 
Registrado: jun 2003
Posts: 38
Reputación: 0
FlacoNet Va por buen camino
Question UNION ALL cambia tipo de dato de retorno

buen dia. Tengo la siguiente estructura de tabla en postgres 8.2:

Código:
CREATE TABLE tiposcliente
(
  idtipoclient smallint NOT NULL,
  tipoclient character varying(30) NOT NULL,
  CONSTRAINT pk_tiposcliente PRIMARY KEY (idtipoclient)
)
y realizando la siguiente consulta:

Código:
select cast(0 as smallint) as idtipoclient,
cast('Todos' as varchar(30)) as tipoclient
UNION ALL
(SELECT idtipoclient, tipoclient
  FROM tiposcliente
order by 2)
Tengo el problema que el campo tipoclient me sigue devolviendo un campo de tipo varchar sin limite ó memo, cuando en realidad lo estoy convirtiendo a varchar(30) como la definicion del campo original.

Devolviendome el campo como 'memo' tengo problemas para mostrarlo en el componente de datos de delphi.
¿Alguna respuesta para resolver el correcto retorno del tipo de dato?

Acabo de probar creando una vista con la misma definicion anterior:

Código:
CREATE VIEW TipoCliente as
select cast(0 as smallint) as idtipoclient,
cast('Todos' as varchar(30)) as tipoclient
UNION ALL
(SELECT idtipoclient, tipoclient
  FROM tiposcliente
order by 2)
y cuando la consulta anda bien. ¿que pasara? Acaso no se puede hacer esto evitando crear la vista?

lo unico que encontre de documentacion al respecto es
http://www.postgresql.org/docs/8.3/s...nion-case.html pero sigo sin poder resolverlo.

Mil gracias a todos..

FlacoNet

Última edición por FlacoNet fecha: 14-02-2010 a las 00:34:24. Razón: Por que creando una vista devuelve el tipo de dato correcto
Responder Con Cita