oracle查看所有存储过程触发器,oracle 查看用户表,存储过程,触发器,函数对象...
时间: 2023-12-21 07:16:13 浏览: 77
要查看Oracle数据库中的所有存储过程和触发器,可以使用以下SQL查询语句:
```sql
SELECT object_name, object_type
FROM user_objects
WHERE object_type IN ('PROCEDURE', 'TRIGGER');
```
这将返回当前用户的所有存储过程和触发器的名称和类型。
要查看用户表、存储过程、触发器和函数对象,可以使用以下SQL查询语句:
```sql
SELECT object_name, object_type
FROM user_objects
WHERE object_type IN ('TABLE', 'PROCEDURE', 'TRIGGER', 'FUNCTION');
```
这将返回当前用户的所有表、存储过程、触发器和函数对象的名称和类型。
相关问题
oracle 在函数中使用触发器
Oracle数据库中的触发器是一种特殊的存储过程,它会在特定的表上自动执行,通常是在数据操作(INSERT、UPDATE或DELETE)完成后或之前发生。在函数中使用触发器时,可以创建一个PL/SQL函数作为触发器的主体,这个函数可以根据需要对数据进行检查、验证、计算或记录日志。
例如,你可以创建一个名为`update_log`的触发器,当某个表的`id`字段更新时,该触发器会被激活。在触发器函数中,你可以编写代码来记录旧值和新值,或者根据新的值执行其他业务逻辑:
```sql
CREATE OR REPLACE FUNCTION update_log (old_id NUMBER, new_id NUMBER)
RETURN TRIGGER AS
BEGIN
INSERT INTO log_table (table_name, old_value, new_value)
VALUES (:OLD.table_name, old_id, new_id);
-- 其他可能的操作...
RETURN NEW;
END;
/
CREATE TRIGGER trig_update_table
AFTER UPDATE OF id ON table_name
FOR EACH ROW
WHEN (OLD.id <> NEW.id)
EXECUTE FUNCTION update_log(OLD.id, NEW.id);
```
在这个例子中,每当`table_name`表中的`id`列被更新,触发器`trig_update_table`就会调用`update_log`函数,并将更新前后的`id`值传递给函数。
阅读全文
相关推荐


















