Oracle基础 -- SQLPlus如何查看procedure的内容

desc procedure可以看到procedure的声明。
那如果要查看procudre的内容呢?
solution:

select text from all_source where name = ‘ABC_GET_CMF' and OWNER='CWUK_YY' order by line;


PROCEDURE abc_get_cmf(
  v_account_no                          NUMBER,
  abc_get_cmf_cv IN OUT cv_types.customer_tp)
IS
BEGIN
  OPEN abc_get_cmf_cv FOR
  SELECT
  no_bill,
  CMF.currency_code,
  prev_bill_date
  FROM CMF
  WHERE CMF.account_no = v_account_no;  
END;

14 rows selected.

我们可以看下all_source这个表的各个字段
SQL> desc  all_source;
 Name                                                                    Null?    Type
 ----------------------------------------------------------------------- -------- ------------------------------------------------
 OWNER                                                                            VARCHAR2(30)
 NAME                                                                             VARCHAR2(30)
 TYPE                                                                             VARCHAR2(12)
 LINE                                                                             NUMBER
 TEXT                                                                             VARCHAR2(4000)

SQL> select distinct type from all_source;

TYPE
------------
TYPE BODY
PROCEDURE
LIBRARY
TRIGGER
JAVA SOURCE
PACKAGE
TYPE
FUNCTION
PACKAGE BODY

ALL_SOURCE describes the text source of the stored objects accessible to the current user.
Related Views

DBA_SOURCE describes the text source of all stored objects in the database.

USER_SOURCE describes the text source of the stored objects owned by the current user. This view does not display the OWNERcolumn.
Column
Datatype
NULL
Description
OWNER
VARCHAR2(30)
NOT NULL
Owner of the object
NAME
VARCHAR2(30)
NOT NULL
Name of the object
TYPE
VARCHAR2(12)
 
Type of object: FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER,TYPE, TYPE BODY
LINE
NUMBER
NOT NULL
Line number of this line of source
TEXT
VARCHAR2(4000)
Text source of the stored object
useful link: https://docs.oracle.com/cd/B19306_01/server.102/b14237/statviews_2063.htm#i1588578

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用SQLPLUS调试Oracle存储过程,具体步骤如下: 1. 连接到Oracle数据库 首先,需要使用SQLPLUS连接到Oracle数据库,例如: ``` sqlplus username/password@database ``` 其中,username为数据库用户名,password为密码,database为数据库名。 2. 设置调试模式 接下来,需要设置存储过程的调试模式,可以使用以下命令: ``` SET SERVEROUTPUT ON SET SERVEROUTPUT ON SIZE UNLIMITED SET SERVEROUTPUT ON FORMAT WRAPPED ``` 这些命令将启用服务器输出,并设置输出格式。SIZE UNLIMITED选项将确保输出不受限制。 3. 编译存储过程 在调试存储过程之前,需要先编译存储过程。可以使用以下命令编译存储过程: ``` ALTER PROCEDURE procedure_name COMPILE; ``` 其中,procedure_name为存储过程的名称。 4. 设置断点 可以在存储过程中设置断点,以便在执行存储过程时暂停程序执行。可以使用以下命令设置断点: ``` ALTER PROCEDURE procedure_name COMPILE DEBUG; ``` 这将在存储过程编译时启用调试模式,并在存储过程中设置断点。 5. 执行存储过程 可以使用以下命令执行存储过程: ``` EXECUTE procedure_name; ``` 在执行存储过程时,程序将在设置的断点处暂停执行,可以使用SQLPLUS的调试命令来查看变量的值,以帮助调试存储过程。 6. 关闭调试模式 完成调试后,可以使用以下命令关闭调试模式: ``` ALTER PROCEDURE procedure_name COMPILE; ``` 这将关闭调试模式并重新编译存储过程。 以上就是在SQLPLUS中调试Oracle存储过程的步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值