-1

Is there any way in DB2 to find temp table from the session ?

I have created a temp table pertaining to session

DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP_TABLE_NAME
(   
        COL_1 VARCHAR(11) NOT NULL,
        COL_2 VARCHAR(10)
) ON COMMIT PRESERVE ROWS;

When I am trying to create query

select * from sysibm.systables where owner='SESSION' and name='TEMP_TABLE_NAME'

yields 0 rows.

Am I looking at the incorrect table to find temp tables ?

Thanks !

4

2 回答 2

3

已声明的全局临时表 (DGTT) 不会出现在目录中,这是设计 - 所以您不会在 sysibm.systables 中找到 DGTT。除了声明它的程序之外,任何其他程序都不能使用 DGTT - 它特定于该会话,因此将它放在目录中没有任何价值。

create global temporary table ... 如果您使用的是 Db2 for z/OS(v10 或更高版本)或Db2 -LUW,则可能需要使用不同语法的“已创建全局临时表”(CGTT 。创建它们。

请参阅Db2-LUW 文档或在此处用于 z/OS 的 Db2 。

于 2019-06-12T16:57:49.593 回答
0

查看SYSIBMADM.ADMINTEMPTABLES管理视图。
如果您想查看会话中创建的所有 DGTT,则:

SELECT TABNAME
FROM SYSIBMADM.ADMINTEMPTABLES
WHERE TEMPTABTYPE='D'
AND APPLICATION_HANDLE=mon_get_application_handle();
于 2019-06-12T17:35:21.597 回答