我搜索了很多,但找不到任何东西..我只想问是否有任何方法可以创建并调用带有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
只有在执行带输出参数的函数时才会发生这种情况。
答案 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合理地工作。