Stored procedures DB2可以';t刷新存储过程中的物化查询表(MQT)
我在刷新存储过程内部的MQT时遇到问题 尝试刷新表时,我收到以下错误: 错误[42601][IBM][DB2/LINUX8664]SQL0104N在“语言SQL开始”之后发现意外的标记“刷新”。预期标记可能包括:“TRUNCATE”Stored procedures DB2可以';t刷新存储过程中的物化查询表(MQT),stored-procedures,db2,refresh,materialized-views,Stored Procedures,Db2,Refresh,Materialized Views,我在刷新存储过程内部的MQT时遇到问题 尝试刷新表时,我收到以下错误: 错误[42601][IBM][DB2/LINUX8664]SQL0104N在“语言SQL开始”之后发现意外的标记“刷新”。预期标记可能包括:“TRUNCATE” 不能在存储过程中以静态语句的形式执行刷新表,因为它只能作为动态语句运行 因此,正确的方法是使用executeimmediate语句: CREATE OR REPLACE PROCEDURE TEST_PROC LANGUAGE SQL BEGIN dec
不能在存储过程中以静态语句的形式执行
刷新表
,因为它只能作为动态语句运行
因此,正确的方法是使用executeimmediate
语句:
CREATE OR REPLACE PROCEDURE TEST_PROC
LANGUAGE SQL
BEGIN
declare vSQL varchar(1024);
set vSQL = 'refresh table MQT_TEST';
execute immediate vSQL;
END@
CREATE OR REPLACE PROCEDURE TEST_PROC
LANGUAGE SQL
BEGIN
declare vSQL varchar(1024);
set vSQL = 'refresh table MQT_TEST';
execute immediate vSQL;
END@