一尘不染

Informix:具有输出参数的过程?

sql

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

提前致谢!

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

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

我收到的是:

常规mytest无法解决

并且仅在执行具有输出参数的功能时才会发生。


阅读 273

收藏
2021-03-08

共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明智地协同工作。

2021-03-08