sqlplus查oracle存储过程,在SQLPLUS中调试Oracle存储过程

开发和调试Oracle存储过程都是用可视化工具,如PL SQL DEVELOPER,TOAD等等。不会有人傻到要用 vim 去开发,再用 sql plus 去调试

我们在通常情况下,开发和调试Oracle存储过程都是用可视化工具,如PL SQL DEVELOPER,TOAD等等。不会有人傻到要用 vim 去开发,再用 sql plus 去调试的存储过程的。但在有些情况下,我们知道在 sql plus 中如何调试存储过程,还是有收益的。

像我的有些客户的数据库环境,我只能通过ssh 连接进去看。开发人员告诉我,,一个存储过程使用pl sql developer 调试一下就死掉,再调再死。

我在数据库的系统管理视图中看不到任何错误,怎么办呢?

没办法,只能自己使用sql plus 这个工具去调试存储过程啦!

在绕过几层网络设置,连接上数据库服务器操作系统,打开sqlplus 工具窗口。

要调试的存储过程是这样子:

CREATE OR REPLACE PROCEDURE "PROC_OBJECT_GET_ID"(p_id_name varchar2,

result out integer,

p_message out varchar2)

一个输入变量和两个输出变量,分别为varchar,integer,varchar 类型。

在sql plus 中,使用var 声明变量,使用exec 赋值和执行存储过程

SQL> VAR P_ID_NAME VARCHAR2(100)

SQL> VAR RESULT NUMBER

SQL> VAR P_MESSAGE VARCHAR2(100)

SQL> EXEC :P_ID_NAME:= 'com.css.cms.document'

SQL> execute PROC_OBJECT_GET_ID1(:P_ID_NAME,:result,:p_message);

PL/SQL 过程已成功完成。

SQL> PRINT RESULT

RESULT

----------

-1

SQL> PRINT P_MESSAGE

P_MESSAGE

--------------------------------------------------------------------------------

ORA-01422: 实际返回的行数超出请求的行数

变量的类型只有帮助中列出来的这些。

SQL> variable result integer;

用法 : VAR[IABLE] [ [ NUMBER | CHAR | CHAR (n [CHAR|BYTE]) |

VARCHAR2 (n [CHAR|BYTE]) | NCHAR | NCHAR (n) |

NVARCHAR2 (n) | CLOB | NCLOB | REFCURSOR |

BINARY_FLOAT | BINARY_DOUBLE ] ]

sqlplus 工具还有一些功能,可以使用help 方式去学习。

更多Oracle相关信息见Oracle 专题页面 ?tid=12

logo.gif 本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉 本文系统来源:php中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值