【发布时间】:2019-07-16 14:43:20
【问题描述】:
如何为 MQT(物化查询表)创建临时表?
目标是使用增量刷新(而不是完全刷新)
这是 IBMi 上的 DB2
我能够创建一个 MQT
当我尝试按照示例创建临时表时,我收到一个错误
例如,
为 XXLIB.SALES 创建 MQT:
create table XXLIB.SALES as
(select Company, Territory, SUM(Sales)
From XXLIB.HISTORY Where Company = 1 Group by Company, Territory)
data initially deferred refresh deferred maintained by user
然后是 staging XXLIB.SALES_S
CREATE TABLE XXLIB.SALES_S FOR XXLIB.SALES PROPAGATE IMMEDIATE;
这是错误信息
SQL 状态:42601 供应商代码:-104 消息:[SQL0104] 令牌。不是 有效的。有效令牌: .原因 。 . . . . : 语法错误 在 token .. Token 处检测到。不是有效的令牌。一个部分 有效令牌列表是 .该列表假定 声明是正确的直到令牌。错误可能早于 语句,但该语句的语法似乎是有效的 这点。恢复 。 . . :执行以下一项或多项操作,然后 再次尝试请求: -- 验证区域中的 SQL 语句 令牌..更正该语句。错误可能是缺少逗号或 引号,可能是拼写错误的单词,也可能是相关的 按照从句的顺序。 -- 如果错误标记是 , 更正 SQL 语句,因为它没有以有效的子句结尾。
处理结束,因为突出显示的语句未完成 成功
【问题讨论】:
-
可能你不小心分享了错误的链接ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/db2/… 那是给SET ENCRYPTION PASSWORD
-
您是说这与 IBMi 上的 Db2 不同吗? staging table创建逻辑,即CREATE TABLE X_S FOR X PROPAGATE IMMEDIATE;
-
没错。 only 使用您的服务器平台和版本提供的语法。 仅使用该服务器平台和版本的匹配文档。是的,更好的 URL 可能是 ibm.com/support/knowledgecenter/en/ssw_ibm_i_71/rzajq/… 以及相关的 create table 语句。
-
谢谢mao,请给一个创建临时表的链接
-
是什么让您相信您的 i-version 支持 MQT 的该功能?在知识中心中,单击“更改产品版本”以选择与您的服务器匹配的版本,然后在右上角的搜索框中输入您的搜索词。研究您的平台+版本上可用的语法。
标签: sql db2 ibm-midrange db2-400