如何在DB2 LUW中的存储过程或UDF中“选择”?
问题描述:
我相信这个问题很微不足道。我无法选择我定义的存储过程中的行,也不能在UDF中选择。这里是我使用的语法:如何在DB2 LUW中的存储过程或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。
看看手册。 https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0008329.html?pos=2要返回结果集,只需简单地声明一个光标并在退出程序之前打开它。 – Charles
数字和序列都是保留字 – Hogan
为我创建SP最难的部分是始终使用命令行选项正确使用';'中的不同批终止符,因此我可以在我的SP代码中包含';'。 – Hogan