首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Netezza存储过程中的返回值捕获到变量中?

如何将Netezza存储过程中的返回值捕获到变量中?
EN

Stack Overflow用户
提问于 2014-01-31 17:52:41
回答 2查看 9.4K关注 0票数 2

如果有人告诉我捕捉Netezza存储过程返回值到变量的正确方法,我将不胜感激。

代码语言:javascript
复制
create or replace procedure test() returns varchar(10) language nzplsql as
begin
 return "success";
end;

然后类似于(在另一个过程中)

代码语言:javascript
复制
var_name := call test();

将"success“捕获到变量var_name

非常感谢。

EN

回答 2

Stack Overflow用户

发布于 2014-02-06 00:32:27

我认为这里的不同之处在于在语法中包含单词" Call“会导致NZPLSQL丢弃Proc调用的结果。(ref)

因此,不是

代码语言:javascript
复制
var_name := call test();

你只是想

代码语言:javascript
复制
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

票数 2
EN

Stack Overflow用户

发布于 2014-02-04 14:21:21

请在下面找到两个过程,其中第一个过程的返回值被第二个过程捕获-

过程VarunTest -

代码语言:javascript
复制
CREATE OR REPLACE PROCEDURE varunTest()
LANGUAGE NZPLSQL RETURNS varchar(255) AS

BEGIN_PROC

DECLARE

BEGIN
        return 'varunTest';

END;


END_PROC;

创建过程

代码语言:javascript
复制
\i varunTest.sql

过程BajajTest

代码语言:javascript
复制
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;

创建过程

代码语言:javascript
复制
\i bajajTest.sql

调用过程

代码语言:javascript
复制
call bajajTest();

程序的结果-

代码语言:javascript
复制
NOTICE:  result => varunTest
BAJAJTEST
-----------

(1 row)

希望这能对你有所帮助。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21477006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档