Netezza-如何在没有REFTABLE的情况下从存储过程返回多个值

时间:2018-10-23 08:58:06

标签: stored-procedures netezza nzplsql

我尝试在不使用Netezza中的reftable的情况下从存储过程中返回一些值。

CREATE OR REPLACE PROCEDURE TMP_GETTABLEINFO(CHAR(any), VARCHAR(any), VARCHAR(any)) returns char(1), varchar(30) EXECUTE AS OWNER LANGUAGE NZPLSQL AS begin_proc DECLARE a ALIAS FOR $1; b ALIAS FOR $2; BEGIN ... RETURN a, b; END;

有可能吗? 怎么样?

我的结果是:ERROR [HY000] ERROR: Must specify LANGUAGE

1 个答案:

答案 0 :(得分:1)

我认为这不可能。我还没有看到返回多个值的情况。

从文档(Netezza_stored_procedures_guide.pdf):通常,NZPLSQL过程返回唯一的返回值,但是它也可以以指定表的形式返回结果集。

要创建一个返回结果集的存储过程:

  • 使用返回值RETURNS REFTABLE (<table-name>)定义存储过程,以指示它返回的结果集类似于指定的表。
  • 在过程主体内部,使用变量REFTABLENAME引用结果表。