oracle触发器 sql查询自身
时间: 2023-08-15 19:13:58 浏览: 56
在Oracle中,要在触发器中查询自身,你可以使用`NEW`和`OLD`关键字来引用触发器所属的行。`NEW`关键字指的是触发器正在插入或更新的行,而`OLD`关键字指的是触发器正在更新或删除的行。
下面是一个示例,演示如何在触发器中查询自身:
```sql
CREATE OR REPLACE TRIGGER trigger_name
BEFORE INSERT OR UPDATE OR DELETE ON table_name
FOR EACH ROW
DECLARE
self_value table_name.column_name%TYPE;
BEGIN
-- 查询自身的值
SELECT column_name INTO self_value FROM table_name WHERE primary_key_column = :NEW.primary_key_column;
-- 执行其他逻辑或操作
-- 例如,可以打印出查询到的值
DBMS_OUTPUT.PUT_LINE('Self value: ' || self_value);
END;
/
```
在上面的示例中,`trigger_name`是你给触发器起的名称,`table_name`是触发器所属的表名,`column_name`是你要查询的列名,`primary_key_column`是表中的主键列名。
请注意,在触发器中进行查询操作可能会影响性能和触发器的执行速度。因此,建议仅在需要时才进行此类查询操作,并尽量保持触发器简单和高效。
相关问题
oracle触发器 查询
Oracle触发器是一种特殊的存储过程,它的执行不是由程序调用或手工启动,而是由事件来触发。触发器可以在数据库中的表上定义,当满足特定的条件时,触发器会自动执行相应的操作。关于Oracle触发器的查询,可以使用以下语法进行查询:
```sql
SELECT * FROM ALL_TRIGGERS WHERE TABLE_NAME = 'your_table_name';
```
这条查询语句将返回指定表名的所有触发器的信息,包括触发器的名称、触发事件、触发时机、触发器类型等。你可以根据需要修改查询条件来获取特定表的触发器信息。
#### 引用[.reference_title]
- *1* [解析Oracle触发器的语法](https://blog.csdn.net/weixin_33524659/article/details/116466322)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Oracle触发器查询统计本表](https://blog.csdn.net/weixin_35718242/article/details/116513724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
oracle 查询出触发器名称,触发器 sql
你可以使用以下 SQL 语句来查询 Oracle 数据库中的触发器名称和 SQL:
```
SELECT TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT, TABLE_OWNER, TABLE_NAME, TRIGGER_BODY
FROM ALL_TRIGGERS
WHERE OWNER = 'schema_name';
```
请将 `schema_name` 替换为你所需要查询的数据库用户的名称。这个查询语句将列出所有属于该用户的触发器的名称、类型、触发事件、所属表的用户名和表名以及触发器的 SQL 语句。