首批通过分布式安全可靠测评,为关键业务系统打造
管理存储过程和函数
更新时间:2026-07-15 22:01:31
PL 支持对存储过程和函数的查看和删除操作。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版仅提供 MySQL 模式。
查看存储过程和函数
存储过程和函数保存在数据库的字典中,几个常用的字典视图如下:
DBA_SOURCE:所有的存储过程和函数。ALL_SOURCE:当前用户可以访问的所有存储过程和函数。USER_SOURCE:当前用户拥有的所有存储过程和函数。
示例:通过 DBA_SOURCE 查看用户 HR 的所有存储过程。
obclient> SELECT OWNER,NAME,TYPE FROM DBA_SOURCE
WHERE OWNER='HR' AND TYPE='PROCEDURE';
+-------+-------------+-----------+
| OWNER | NAME | TYPE |
+-------+-------------+-----------+
| HR | AAA | PROCEDURE |
| HR | USERLOGIN | PROCEDURE |
| HR | LOG_MESSAGE | PROCEDURE |
+-------+-------------+-----------+
示例:通过 USER_SOURCE 查看当前用户拥有的存储过程 log_message 的内容。
obclient> SELECT TEXT FROM USER_SOURCE WHERE NAME='log_message' AND
TYPE='PROCEDURE'\G
*************************** 1. row ***************************
TEXT: PROCEDURE log_message(p_message varchar2)
AS
BEGIN
INSERT INTO logtable VALUES ( user, sysdate, p_message );
COMMIT;
END log_message
1 row in set
删除存储过程和函数
删除存储过程的命令格式如下:
DROP PROCEDURE [user.]Procudure_name;
删除函数的命令格式如下:
DROP FUNCTION [user.]Function_name;
示例如下:
obclient> DROP PROCEDURE log_message;
Query OK, 0 rows affected