在DB2中有没有办法从会话中找到临时表?
我已经创建了与会话相关的临时表
DECLARE GLOBAL TEMPORARY TABLE SESSION.TEMP_TABLE_NAME
(
COL_1 VARCHAR(11) NOT NULL,
COL_2 VARCHAR(10)
) ON COMMIT PRESERVE ROWS;
尝试创建查询时
select * from sysibm.systables where owner='SESSION' and name='TEMP_TABLE_NAME'
产生0行。
我查找临时表的表不正确吗?
谢谢你!
2条答案
按热度按时间2nc8po8w1#
声明的全局临时表(DGTT)不会出现在目录中,这是设计-所以你不会在sysibm. systables中找到DGTT。DGTT不能被任何其他程序使用,除了声明它的程序-它是特定于那个会话的,因此在目录中拥有它没有任何价值。
如果您正在使用Db2 for z/OS(v10或更高版本)或Db2-LUW,则可能需要使用不同语法
create global temporary table ...
的“CREATED global temporary table”(CGTT)。这些 * 已 * 编入目录,但您需要相关权限才能创建它们。请参阅Db2-LUW documentation.或以了解z/OS here得Db2.
4ioopgfo2#
查看SYSIBMADM.ADMINTEMPTABLES管理视图。
如果要查看在会话中创建的所有DGTT,请执行以下操作: