Ssrs 2008 从IBMi(AS400)提取数据的SQL查询-如何分离多个查询

Ssrs 2008 从IBMi(AS400)提取数据的SQL查询-如何分离多个查询,ssrs-2008,ibm-midrange,db2-400,Ssrs 2008,Ibm Midrange,Db2 400,AS400中用于在同一SQL中运行多个语句的查询分隔符是什么。我们在MS SQL中使用了GO语句,尽管AS400中使用分号来分隔多个查询,但由于某些原因,分号不起作用 我实际上在这个查询中有多个步骤 创建一个全局临时表 将数据插入到此全局临时表中 通过以下方式更新此全局临时表上的数据的一些逻辑 与其他表连接 从该全局临时表中选择值 当我使用分号分隔每个步骤时,我得到一个错误,即分号不能识别为查询分隔符…下面是查询的片段 DECLARE GLOBAL TEMPORARY TABLE SESSION

AS400中用于在同一SQL中运行多个语句的查询分隔符是什么。我们在MS SQL中使用了GO语句,尽管AS400中使用分号来分隔多个查询,但由于某些原因,分号不起作用

我实际上在这个查询中有多个步骤

创建一个全局临时表

将数据插入到此全局临时表中

通过以下方式更新此全局临时表上的数据的一些逻辑 与其他表连接

从该全局临时表中选择值

当我使用分号分隔每个步骤时,我得到一个错误,即分号不能识别为查询分隔符…下面是查询的片段

DECLARE GLOBAL TEMPORARY TABLE SESSION.FinalRes
(
       SLSTRTY  CHAR(4)
       ,SLSMAN CHAR(5)
       ,CSTNAM CHAR(30)
       ,CustN  CHAR(16)
       ,ADR1 CHAR(30)       
       ,ADR4 CHAR(30)
       ,"STATE" CHAR(2)
       ,ZIPCD CHAR(12)
       ,DTEADDED DATE
       ,SalesCM DECIMAL(22,7)
       ,SalesYTD DECIMAL(22,7)
       ,SalesPY DECIMAL(22,7)
       ,EXTGPCM DECIMAL(22,7)
       ,EXTGPYTD DECIMAL(22,7)
       ,EXTGPPY DECIMAL(22,7)
       ,GMYTD DECIMAL(22,7)
       ,GMCM DECIMAL(22,7)
       ,GMPY DECIMAL(22,7)
       ,SalesPYM DECIMAL(22,7)
       ,SalesPYTD DECIMAL(22,7)
       ,STATIND CHAR(1)
       ,CSTCLS CHAR(3)
       ,CSort NUMERIC(5)
) WITH REPLACE ON COMMIT PRESERVE ROWS ;

SELET * from SESSION.FinalRes
这是我在尝试执行查询时遇到的错误

SQL0104:令牌;无效。有效令牌:语句结束。 原因……:在标记处检测到语法错误;。代币 不是有效的令牌。有效令牌的部分列表如下所示 . 此列表假定该语句是正确的 到令牌为止。错误可能在语句的前面,但 到目前为止,该语句的语法似乎仍然有效。恢复 . . . : 请执行以下一项或多项操作,然后重试该请求: -验证令牌区域中的SQL语句;。纠正这句话。它指出,错误可能是缺少逗号或引号 可能是拼错的单词,也可能与字母顺序有关 条款。-如果错误标记为,请更正SQL 语句,因为它没有以有效子句结尾


DB2foriSQL每次调用只准备和执行[ExecuteImmediate]一条动态语句。尽管我还没有机会使用该特性,但自从DB2forIBMi7.1发布以来,显然支持接受动态复合语句。复合语句中的语句分隔符[用于声明性语句和过程性语句]是分号。 DB2fori中的动态复合语句 出版日期:2014年1月15日
迈克尔·桑索特拉(Michael Sansoterra)

可能已经解释了这一点,但您的“选择”关键字缺少一个“c”。另外,请尝试在select语句后添加一个分号。

您真的想包含sql server标记吗?这不是sql server语法,您如何尝试执行此sql?IBM i Navigator?STRSQL?RUNSQLSTM?您打算发布多少次相同的问题?我正在尝试从SSRS运行此查询。我已使用Provider=IBMDA400设置OLE DB此提供程序是Microsoft SSRS工具中IBM I Navigator for windows的一部分。如果查询中只有一条语句,即我的连接设置正确,则查询工作正常。只有当我尝试在同一个查询中运行多个语句(以分号分隔)时,我才会收到此错误。由于您是从SSR运行的,您是否尝试过GO语法?