查看过程和函数

过程和函数保存在数据库的字典中,几个常用的查看字典命令如下:

  • DBA_SOURCE: 所有的过程和函数。

  • ALL_SOURCE: 当前用户可以访问的所有过程和函数。

  • USER_SOURCE: 当前用户拥有的所有过程和函数。

示例:使用 DBA_SOURCE 列举用户 HR 的所有过程。

  1. obclient> select owner,name,type from dba_source where owner='HR' and type='PROCEDURE';
  2. +-------+-------------+-----------+
  3. | OWNER | NAME | TYPE |
  4. +-------+-------------+-----------+
  5. | HR | AAA | PROCEDURE |
  6. | HR | USERLOGIN | PROCEDURE |
  7. | HR | LOG_MESSAGE | PROCEDURE |
  8. +-------+-------------+-----------+

示例:使用 user_source 查看当前用户拥有的过程 log_message 的内容。

  1. obclient> select text from user_source where name='LOG_MESSAGE' and type='PROCEDURE'\G
  2. *************************** 1. row ***************************
  3. TEXT: PROCEDURE log_message(p_message varchar2)
  4. AS
  5. BEGIN
  6. INSERT INTO logtable VALUES ( user, sysdate, p_message ); COMMIT;END log_message
  7. 1 row in set (0.04 sec)

删除过程和函数

删除过程的命令如下:

  1. DROP PROCEDURE [user.]Procudure_name;

删除函数的命令如下:

  1. DROP FUNCTION [user.]Function_name;

示例如下:

  1. obclient> drop procedure LOG_MESSAGE;
  2. Query OK, 0 rows affected (0.03 sec)