PLは、ストアドプロシージャと関数の表示および削除操作をサポートしています。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity Editionは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