如何在DB2 LUW中“选择”存储过程或UDF?

时间:2016-11-21 19:48:37

标签: sql database stored-procedures db2 udf

我相信这个问题非常微不足道。我无法在我定义的存储过程中选择行,也无法在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。

1 个答案:

答案 0 :(得分:0)

我的问题是我需要使用游标才能将结果集返回给存储过程的调用者。

参考文献:

CREATE PROCEDURE (SQL) statement

Compound SQL (compiled) statement