I_A*_*ROD 6 t-sql db2 temp-tables
我如何在DB2中执行以下TSQL查询?我在根据查询结果创建临时表时遇到问题.
SELECT
COLUMN_1, COLUMN_2, COLUMN_3
INTO #TEMP_A
FROM TABLE_A
WHERE COLUMN_1 = 1 AND COLUMN_2 = 2
Run Code Online (Sandbox Code Playgroud)
错误消息是:
"错误:SQL0104N在""之后发现了一个意外的令牌"#TEMP_A".预期的令牌可能包括:":".SQLSTATE = 42601"
bha*_*mby 11
您必须先在DB2中声明临时表,然后才能使用它:
DECLARE GLOBAL TEMPORARY TABLE SESSION.YOUR_TEMP_TABLE_NAME AS (
SELECT COLUMN_1, COLUMN_2, COLUMN_3
FROM TABLE_A
) DEFINITION ONLY
Run Code Online (Sandbox Code Playgroud)
然后填充它:
DECLARE GLOBAL TEMPORARY TABLE SESSION.YOUR_TEMP_TABLE_NAME (
COLUMN_1 CHAR(10)
,COLUMN_2 TIMESTAMP
,COLUMN_3 INTEGER
)
Run Code Online (Sandbox Code Playgroud)
它不像SQL Server那样直截了当. :)
即使它被称为"全局"临时表,它只存在于当前会话中.请注意,所有临时表都应该以SESSION架构为前缀.如果您没有提供架构名称,那么SESSION将暗示.