AS400中用于在同一个SQL中运行多个语句的查询分隔符是什么。我们在MS中有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:令牌;无效。有效标记:语句结束。原因。。。。。::在token检测到语法错误;令牌;不是有效的令牌。有效令牌的部分列表是。此列表假设语句在令牌之前是正确的。该错误可能在语句的前面,但语句的语法在此之前似乎是有效的。恢复正常。。。执行一个或多个以下操作并再次尝试请求:--验证令牌区域中的SQL语句;更正陈述。错误可能是缺少逗号或引号,可能是拼写错误的单词,也可能与子句的顺序有关。--如果是错误标记,则更正SQL语句,因为它没有以有效子句结尾。
发布于 2015-04-18 12:04:19
DB2 for i将准备并立即执行每次调用只执行一条动态语句。虽然我还没有机会使用这个特性,但是自从IBMI7.1的DB2之后,显然就有了对动态复合语句的支持。复合语句中声明语句和过程语句的语句分隔符是分号。
http://www.itjungle.com/fhg/fhg011514-story02.html
动态复合语句在DB2 For i中的应用
发布日期:2014年1月15日
迈克尔·桑索特拉
发布于 2015-05-28 04:07:20
这可能已经说明了,但您的“select”关键字缺少一个'c‘。还可以尝试在select语句之后添加一个附加分号。
https://stackoverflow.com/questions/29350579
复制相似问题