首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用EDB*plus从远程服务器调用EDB存储过程(具有输出参数)

使用EDB*plus从远程服务器调用EDB存储过程(具有输出参数)
EN

Stack Overflow用户
提问于 2019-07-24 19:55:17
回答 1查看 248关注 0票数 1

EDB plus用于调用企业数据库过程(EDB SPL),该过程的返回值将在shell变量中捕获。需要相同的语法和细节。数据库位于远程计算机上。

我可以从远程服务器使用EDB * Plus调用EDB (存储过程),而无需提及它的输出参数。但是不能将其输出参数值捕获到shell局部变量中。

代码语言:javascript
运行
复制
--shell script code(OS is Linux, EDB version 11.3.10)
Proc_result=`edbplus -S $DB_USER/$DB_PASSWORD@$DB_SCHEMA 2>>EDB_ERROR_FILE <<END_OF_SQL
set feedback off
set pages 0
set flush off
set feedback on
exec schema1.procedure_1(input_param1, input_param2, input_param3);
exit;
END_OF_SQL`

--EDB procedure signature
schema1.procedure_1(input_param1 varchar2, 
                    input_param2 number,
            input_param3 varchar2,
                    output_param1 varchar2,
            output_param2 number);

我希望在外壳变量"Proc_result“中获得"output_param1”和"output_param2“的值。

EN

回答 1

Stack Overflow用户

发布于 2019-10-10 02:50:06

也许您需要使用CALL来代替EXEC

代码语言:javascript
运行
复制
[root@ep11 bin]# DB_USER=enterprisedb
[root@ep11 bin]# DB_PASSWORD=abc123
[root@ep11 bin]# DB_SCHEMA="127.0.0.1:5432/edb"
[root@ep11 bin]# Proc_result=`edbplus -S $DB_USER/$DB_PASSWORD@$DB_SCHEMA 2>>EDB_ERROR_FILE <<END_OF_SQL
> set feedback off
> set pages 0
> set flush off
> set feedback on
> exec schema1.procedure_1('foo',1,'bar');
> exit;
> END_OF_SQL`
[root@ep11 bin]# echo $Proc_result;
EDB-SPL Procedure successfully completed.
[root@ep11 bin]# Proc_result=`edbplus -S $DB_USER/$DB_PASSWORD@$DB_SCHEMA 2>>EDB_ERROR_FILE <<END_OF_SQL
set feedback off
set pages 0
set flush off
set feedback on
call schema1.procedure_1('foo',1,'bar');
exit;
END_OF_SQL`
[root@ep11 bin]# echo $Proc_result;
02c6e1417aae6f6719a772fe7ea2cfac 1 CALL completed.
[root@ep11 bin]# psql -c "call schema1.procedure_1('foo',1,'bar')"
          output_param1           | output_param2 
----------------------------------+---------------
 02c6e1417aae6f6719a772fe7ea2cfac |             1
(1 row)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57182319

复制
相关文章

相似问题

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