Netezza - 如何在没有 REFTABLE 的情况下 return 来自存储过程的多个值

Netezza - How to return multiple values from a stored procedure without REFTABLE

我尝试 return 来自存储过程的一些值,而不使用 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 ; b ALIAS FOR ; BEGIN ... RETURN a, b; END;

可能吗? 怎么样?

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

我认为这是不可能的。我还没有看到多个值被 returned 的情况。

来自文档 (Netezza_stored_procedures_guide.pdf):通常,NZPLSQL 过程 return 是一个唯一的 return 值,但它也可以 return 形式的结果集指定的 table.

要创建 return 作为结果集的存储过程:

  • 使用 RETURNS REFTABLE (<table-name>) 的 return 值定义存储过程,以表明它 return 是一个类似于指定 table 的结果集。
  • 在程序主体内,使用变量 REFTABLENAME 来引用结果 table。