oracle 查询存储过程修改记录
时间: 2023-09-02 07:12:22 浏览: 462
查询最近修改的存储过程
如果您想要查询 Oracle 存储过程的修改记录,可以通过以下步骤进行:
1. 执行以下语句,创建一个用于记录存储过程修改记录的表:
```sql
CREATE TABLE sp_changes (
sp_name VARCHAR2(100),
change_date DATE,
change_type VARCHAR2(20),
change_description VARCHAR2(4000)
);
```
2. 创建一个触发器,将存储过程的修改记录插入到上面创建的表中:
```sql
CREATE OR REPLACE TRIGGER sp_changes_trg
AFTER ALTER ON SCHEMA
DECLARE
sp_name VARCHAR2(100) := ora_dict_obj_name;
change_date DATE := SYSDATE;
change_type VARCHAR2(20);
change_description VARCHAR2(4000);
BEGIN
IF ora_dict_obj_type = 'PROCEDURE' THEN
change_type := 'ALTER PROCEDURE';
change_description := 'Procedure ' || sp_name || ' was altered';
ELSE
change_type := 'ALTER FUNCTION';
change_description := 'Function ' || sp_name || ' was altered';
END IF;
INSERT INTO sp_changes VALUES (sp_name, change_date, change_type, change_description);
END sp_changes_trg;
```
3. 在存储过程被修改时,触发器会将修改记录插入到 `sp_changes` 表中。您可以使用以下 SQL 查询语句,查看修改记录:
```sql
SELECT * FROM sp_changes;
```
这将返回 `sp_changes` 表中的所有记录。您可以根据需要对查询结果进行过滤和排序。
阅读全文