0

我想从预先创建的 DGTT 返回内容作为表函数的结果集。

但是当我引用它时,我得到 SQL SQL0526N / SQLSTATE 42995 错误。

我不明白为什么。 文档只说明了 42995 sqlstate 错误的 3 个原因:

Restrictions on the use of declared temporary tables: Declared temporary tables cannot:
- Be specified in an ALTER, COMMENT, GRANT, LOCK, RENAME or REVOKE statement (SQLSTATE 42995).
- Be referenced in an AUDIT, CREATE ALIAS, or CREATE VIEW statement (SQLSTATE 42995).
- Be specified in referential constraints (SQLSTATE 42995).

但是它们都没有被使用。这个功能非常简单:

BEGIN  ATOMIC 

    CALL DBAREP.SP_ROW_CHECKSUM(sSchema, sTable, sColumnList, sWhere, iRows) ;     

    RETURN 
         (SELECT * FROM SESSION.DBAREP_ROW_CHECKSUM ) ;
END@

这次我违反了什么规则?

4

1 回答 1

1

文档中确实没有明确说明,但DeclaredGTT 不能用于内联复合语句(使用 BEGIN ATOMIC ... END)。
您可以Created改为在内联复合语句中使用 GTT。

于 2021-11-29T14:58:13.750 回答