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