Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > DB2
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-05-2019
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.412
Poder: 22
fjcg02 Va camino a la fama
Tablas temporales en funciones

Buenos días,

hacía mucho que no pasaba por aquí, pero a final acabo preguntando porque siempre hay alguien que ha tenido el mismo problema o me pone en el camino correcto.
Ahora estoy haciendo marcianadas en DB2, y tengo un problema que no sé cómo resolver, ahí lo lanzo.

Estoy haciendo una función que tiene que leer una tabla, recorrérsela, y en base a unas condiciones devolver una serie de valores.

En SQL Server o Firebird, se puede crear una tabla temporal en la función , hacer inserciones sobre ella y luego devolver una select de la tabla temporal. Al acabar la función, la tabla desaparece, que es lo que quiero.

Esto no lo consigo hacer en DB2. He visto que se pueden crear tablas temporales globales, de sesión, etc, pero no consigo hacerlo.

Por lo tanto...

Hay alguien que sepa cómo puedo hacer una función en la que cree una tabla temporal, mi función la vaya rellenado vía inserts y luego pueda devolver los valores?

Quedaría muy agradecido si alguien me puede echar una mano.

Muchas gracias y un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #2  
Antiguo 28-05-2019
orodriguezca orodriguezca is offline
Miembro
 
Registrado: ene 2009
Posts: 221
Poder: 16
orodriguezca Va por buen camino
la forma de crear una tabla temporal en db2 es:
Código SQL [-]
declare global temporary table "el_nombre_de_la_tabla_temporal" (
  definicion de columna, igual que una tabla
)

Por ejemplo:
Código SQL [-]
declare global temporary table miTabla(
   tbl_id integer,
   tbl_descripcion char(50)
)


Esta tabla existirá mientras se mantenga activa la conexión que la crea y solo es visible para esa conexión.
Responder Con Cita
  #3  
Antiguo 31-05-2019
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.412
Poder: 22
fjcg02 Va camino a la fama
Ya ha encontrado la respuesta.

Tienes razón en cómo se declaran y usan las tablas, y de hecho, yo así lo hacía, pero me daba error.

Previamente a poder crear tablas, hay que crear un tablespace de tablas temporales, por eso no me funcionaba.

CREATE TEMPORARY TABLESPACE ( que es el tablespace que van a utilizar vuestras tablas temporales)

Muchas gracias y un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tablas temporales Angel.Matilla Firebird e Interbase 2 14-12-2017 04:30:44
tablas temporales jerryacuna Tablas planas 3 14-11-2014 22:20:01
¿tablas temporales? JXJ Firebird e Interbase 6 23-09-2012 23:20:34
Tablas Temporales look SQL 2 15-03-2008 17:53:16
Tablas Temporales Milperrimo Firebird e Interbase 7 25-10-2007 06:01:25


La franja horaria es GMT +2. Ahora son las 02:58:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi