Stored procedures 存储过程中的错误

Stored procedures 存储过程中的错误,stored-procedures,db2,ibm-midrange,Stored Procedures,Db2,Ibm Midrange,您好,我正努力在ISeries DB2中编写一个存储过程,但出现了错误 create procedure pakretst.fttest2 (IN fExpression CHARACTER(10)) language sql reads sql data dynamic result sets 1 begin declare stmt VARCHAR(50); declare x cursor for sl; If ftExpression IS NOT NULL set

您好,我正努力在ISeries DB2中编写一个存储过程,但出现了错误

  create procedure pakretst.fttest2
(IN fExpression CHARACTER(10))

language sql

reads sql data

dynamic result sets 1

begin

declare stmt VARCHAR(50);

declare x cursor for sl;

If ftExpression IS NOT NULL

 set stmt='select * from pakretst.uwftrtystp WHERE'+ftExpression;

else


 set stmt='select * from pakretst.uwftrtystp';

prepare sl from stmt;

open x;

return;

end

;
****SQL状态:42618 供应商代码:-312
消息:[SQL0312]变量FTEXPRESSION未定义或不可用。原因……:变量FTEXPRESSION出现在SQL语句中,但存在以下条件之一:--不存在该变量的声明。-**

我不知道这是否是一个简单的转录错误,但在你这里给出的内容中,你有

(IN fExpression CHARACTER(10))
在参数列表中,但

set stmt='select * from pakretst.uwftrtystp WHERE'+ftExpression;

在使用方面-
fExpression
ftExpression
相比,

它说明了一些关于未找到的变量的信息,我将其包含在输入变量中,在原始帖子中添加了描述。当类似的信息没有意义时,请让您的计算机帮助。从错误消息中复制变量名,并使用电脑的“搜索”功能在源文本中找到它。不要简单地用眼睛检查。这就是你在这个示例问题中失败的原因。谢谢,真不敢相信我会这么做。虽然它现在又犯了一个错误,但这是向前的一步。干杯