如果有人告诉我捕捉Netezza存储过程返回值到变量的正确方法,我将不胜感激。
create or replace procedure test() returns varchar(10) language nzplsql as
begin
return "success";
end;然后类似于(在另一个过程中)
var_name := call test();将"success“捕获到变量var_name中
非常感谢。
发布于 2014-02-06 00:32:27
我认为这里的不同之处在于在语法中包含单词" Call“会导致NZPLSQL丢弃Proc调用的结果。(ref)
因此,不是
var_name := call test();你只是想
var_name := test();注意:如果您希望返回多个值,您应该查看下面的文档,该文档描述了如何使用reftable。
http://pic.dhe.ibm.com/infocenter/ntz/v7r0m3/index.jsp?topic=%2Fcom.ibm.nz.sproc.doc%2Fc_sproc_returning_a_result_set.html
发布于 2014-02-04 14:21:21
请在下面找到两个过程,其中第一个过程的返回值被第二个过程捕获-
过程VarunTest -
CREATE OR REPLACE PROCEDURE varunTest()
LANGUAGE NZPLSQL RETURNS varchar(255) AS
BEGIN_PROC
DECLARE
BEGIN
return 'varunTest';
END;
END_PROC;创建过程
\i varunTest.sql过程BajajTest
CREATE OR REPLACE PROCEDURE bajajTest()
LANGUAGE NZPLSQL RETURNS varchar(255) AS
BEGIN_PROC
DECLARE
v_test varchar;
BEGIN
v_test := varuntest();
raise notice 'result => %', v_test;
END;
END_PROC;创建过程
\i bajajTest.sql调用过程
call bajajTest();程序的结果-
NOTICE: result => varunTest
BAJAJTEST
-----------
(1 row)希望这能对你有所帮助。:)
https://stackoverflow.com/questions/21477006
复制相似问题