Informix:带输出参数的程序?

时间:2010-10-07 09:57:05

标签: sql informix procedure output-parameter

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

提前致谢!

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

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

我收到的是:

无法解决常规mytest

只有在执行带输出参数的函数时才会发生这种情况。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

为什么你需要'出'参数? 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合理地工作。