【发布时间】:2016-11-21 19:48:36
【问题描述】:
我相信这个问题很琐碎。我无法在我定义的存储过程中选择行,也无法在 UDF 中选择行。这是我使用的语法:
Create Or Replace Procedure GenerateSequence(
In InternalUnitID SmallInt,
In ObjectTypeID SmallInt)
Language SQL
Dynamic Result Sets 1
Not Deterministic
No External Action
Modifies SQL Data
Commit On Return Yes
Begin
Select Number
From Sequence
Where InternalUnit=InternalUnitID
And ObjectType=ObjectTypeID;
End
如果我尝试创建上述过程(通过将定义放入 SQL 文件并运行它)。我收到以下错误消息: DB21034E 该命令被作为 SQL 语句处理,因为它不是有效的命令行处理器命令。在 SQL 处理期间它返回:
SQL0104N An unexpected token "Select Number From Sequence Where Intern" was
found following "n Return Yes Begin ". Expected tokens may include: "".
LINE NUMBER=21. SQLSTATE=42601
有什么线索会导致这个问题吗?
我的环境是 Windows 上的 DB2 10.5 Express。
【问题讨论】:
-
看一下手册。 ibm.com/support/knowledgecenter/SSEPGG_10.5.0/… 要返回结果集,您只需声明一个游标并在退出过程之前将其打开。
-
数字和序列都是保留字
-
为我创建 SP 最困难的部分是始终让命令行选项正确,以便使用与
;不同的批处理终止符,因此我可以在我的 SP 代码中包含;。 -
这只是另一种表现形式:stackoverflow.com/questions/40699343/…
标签: sql database stored-procedures db2 udf