【问题标题】:Error in stored procedure存储过程中的错误
【发布时间】:2010-07-19 09:45:13
【问题描述】:

您好,我正在努力在 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 语句中,但存在下列情况之一: -- 不存在该变量的声明。 --**

【问题讨论】:

  • 它说明了我在输入变量中包含的未找到的变量,在原始帖子中添加了描述。
  • 当这样的事情没有意义时,让您的计算机提供帮助。从错误消息中复制变量名称,然后使用 PC 的“搜索”功能在源文本中找到它。 不要简单地尝试用眼睛检查所有内容。在这个示例问题中,它们是你失败的原因。

标签: stored-procedures db2 ibm-midrange


【解决方案1】:

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

(IN fExpression CHARACTER(10))

在参数列表中但是

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

在使用点 - fExpressionftExpression...

【讨论】:

  • 谢谢,不敢相信我做到了。尽管它现在引发了另一个错误,但它是向前的一步。干杯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-01
相关资源
最近更新 更多