2012-07-10 30 views
5

¿Cómo haré la siguiente consulta TSQL en DB2? Tengo problemas para crear una tabla temporal en función de los resultados de una consulta.db2 equivalente a la tabla temporal tsql

SELECT 
COLUMN_1, COLUMN_2, COLUMN_3 
INTO #TEMP_A 
FROM TABLE_A 
WHERE COLUMN_1 = 1 AND COLUMN_2 = 2 

El mensaje de error es:

"Error: SQL0104N An unexpected token "#TEMP_A" was found following "". Expected tokens may include: ":". SQLSTATE=42601"

+0

Si funciono el error en DB2 me sale el siguiente error ... "error: SQL0104N Un símbolo inesperado 'fue encontrado #TEMP_A' Los tokens esperados pueden incluir: ":". SQLSTATE = 42601 " –

Respuesta

9

Tienes que declare a temp table en DB2 antes de poder utilizarlo:

DECLARE GLOBAL TEMPORARY TABLE SESSION.YOUR_TEMP_TABLE_NAME AS (
    SELECT COLUMN_1, COLUMN_2, COLUMN_3 
    FROM TABLE_A 
) DEFINITION ONLY 

después llenarla:

INSERT INTO SESSION.YOUR_TEMP_TABLE_NAME 
SELECT COLUMN_1, COLUMN_2, COLUMN_3 
FROM TABLE_A 
WHERE COLUMN_1 = 1 
    AND COLUMN_2 = 2 

¡Es no tan sencillo como en SQL Server. :)

Y a pesar de que se llama una tabla temporal "global", solo existe para la sesión actual. Tenga en cuenta que todas las tablas temporales deben tener un prefijo con el esquema SESSION. Si no proporciona un nombre de esquema, entonces estará implícito SESSION.

+1

Una pequeña nota útil: es posible que desee tener" en las filas de confirmación de confirmación "incluidas como" en las filas de eliminación de confirmación "es el valor predeterminado y ese comportamiento puede no ser deseable –

+0

@RichardMorgan O haga que todo se ejecute en la misma transacción. – bhamby

+0

¿El primer bit de código allí solo define la tabla o la rellena? ¿Por qué hay una selección de table_a en la definición? – JSideris

1

tal vez el "con" cláusula es lo que usted busca:

with TEMP_A as (
    SELECT COLUMN_1, COLUMN_2, COLUMN_3 
    FROM TABLE_A 
    WHERE COLUMN_1 = 1 AND COLUMN_2 = 2 
) 
-- now use TEMP_A 
select * from TEMP_A 
+1

Quizás deje en claro que este es un CTE y no una tabla temporal. – eaglei22

Cuestiones relacionadas