项目开发中会使用oracle的存储过程吗,如何使用Oracle SQL开发人员运行存储过程?...

用户在Oracle SQL Developer中遇到困难,尝试执行一个名为`get_account`的PL/SQL过程,该过程需要多个输入和输出参数。用户已经尝试了不同的命令,但一直收到关于标识符未声明的错误(例如'RC')。他们寻求解决方案来正确调用过程,并能够查看返回的行或记录。问题涉及到变量声明、参数传递以及错误捕获。
摘要由CSDN通过智能技术生成

* EDIT6:*这最终为我工作(从接受的答案):

var ret1 number

var tran_cnt number

var msg_cnt number

var rc refcursor

exec :tran_cnt := 0

exec :msg_cnt := 123

exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => :rc)

print :tran_cnt

print :msg_cnt

print :rc

SQL Developer让这个超级难/不可能?我不在乎该实用程序是否基于命令行;我只是希望能够快速运行并查看它。如果它也能很好地捕获错误,那就太好了。能够逐步(交互式)登录,以及一次性指定所有内容(类似于典型的基于ftp / sftp cmd的客户端的工作方式)将会很棒。

我的平台是Windows Server 2008 + Cygwin。

编辑:也许你会知道如何使用Python编写脚本?

编辑2:在MSFT SQL服务器中,我只需输入:

get_user 1;

然后突出显示它并点击F5,我得到:

login name

NULL Somename

打印到输出窗口。 Oracle SQL开发人员根本没有帮助。我不知道如何传入1,我不知道如何查看返回的实际行/记录。

编辑3:当我只键入var rc refcursor;并选择并运行它时,我收到此错误(GUI):

An error was encountered performing the requested operation:

ORA-00900: invalid SQL statement

00900.00000 - "invalid SQL statement"

* Cause:

* Action:

Vendor code 900Error at Line: 2

EDIT4:

我正在尝试运行一个过程,其定义如下所示:

create or replace procedure get_account

(

Vret_val out number,

Vtran_count in out number,

Vmessage_count in out number,

Vaccount_id IN NUMBER

, rc1 in out sys_refcursor

)as

begin

...

我收到一个错误:

Error starting at line 2 in command:

exec :rc := get_account(1)

Error report:

ORA-06550: line 1, column 24:

PLS-00306: wrong number or types of arguments in call to 'GET_ACCOUNT'

ORA-06550: line 1, column 7:

PL/SQL: Statement ignored

06550. 00000 - "line %s, column %s:n%s"

*Cause: Usually a PL/SQL compilation error.

*Action:

rc

------

我很亲密......请帮忙。

*编辑5:*

我正在运行的脚本(功能相同),错误总是一样的:

var ret1 number

var tran_cnt number

var msg_cnt number

var rc refcursor

exec :tran_cnt := 0

exec :msg_cnt := 123

exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => rc)

脚本输出(在F5上)(可能是几次运行的几条消息。):

Error report:

ORA-06550: line 1, column 134:

PLS-00201: identifier 'RC' must be declared

ORA-06550: line 1, column 7:

PL/SQL: Statement ignored

06550. 00000 - "line %s, column %s:n%s"

*Cause: Usually a PL/SQL compilation error.

*Action:

anonymous block completed

anonymous block completed

Error starting at line 7 in command:

exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => rc)

Error report:

ORA-06550: line 1, column 134:

PLS-00201: identifier 'RC' must be declared

ORA-06550: line 1, column 7:

PL/SQL: Statement ignored

06550. 00000 - "line %s, column %s:n%s"

*Cause: Usually a PL/SQL compilation error.

*Action:

anonymous block completed

anonymous block completed

Error starting at line 7 in command:

exec get_account(Vret_val => :ret1, Vtran_count => :tran_cnt, Vmessage_count => :msg_cnt, Vaccount_id => 1, rc1 => rc)

Error report:

ORA-06550: line 1, column 134:

PLS-00201: identifier 'RC' must be declared

ORA-06550: line 1, column 7:

PL/SQL: Statement ignored

06550. 00000 - "line %s, column %s:n%s"

*Cause: Usually a PL/SQL compilation error.

*Action:

为什么说第1行,第134列?没有线延伸到那么远......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值