2

我搜索了很多,但找不到任何东西。我只想问是否有任何方法可以创建和调用没有参数的过程(Informix)。我知道如何返回一个或多个值(对于过程和函数),但这不是我想要的。如果 Informix 不允许输出参数,那就太奇怪了。

提前致谢!

编辑:是的,我看到这是可能的,但我仍然无法执行这样的程序。例如:

  CREATE PROCEDURE mytest(batch INT,OUT p_out INT)  
  DEFINE inc INTEGER;  
  LET inc = 1;  
  LET p_out = 5;  
  END PROCEDURE;  

我收到的是:

套路mytest无法解决

这只发生在执行带有输出参数的函数时..

4

1 回答 1

2

为什么需要“输出”参数?Informix 过程可以从单个调用返回多个值(或者,在本例中,返回单个值):

  CREATE PROCEDURE mytest(batch INT) RETURNING INT AS p_out;
      DEFINE inc INTEGER;
      DEFINE p_out INTEGER;
      LET inc = 1;
      LET p_out = batch + inc;
      RETURN p_out;
  END PROCEDURE;

只有少数地方可以使用 OUT 参数。一个是在查询中 - 有一个名称 SLV(语句局部变量)出现在一些错误消息中。我相信也有一种方法可以通过 Java (JDBC) 获取 OUT 参数。AFAIK,其他 API 不允许这样做。

为 Informix 编写的代码假定它不需要输出参数。需要重新考虑从不提供单个过程的多个输出值的其他(贫困?)系统迁移到 Informix 的代码,以便与 Informix 一起合理地工作。

于 2010-10-07T15:30:11.187 回答