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

我们在通常情况下,开发和调试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 方式去学习。

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值