oracle在触发器中查询其他用户下的表
时间: 2024-02-22 17:57:40 浏览: 83
在Oracle触发器中查询其他用户下的表需要使用全局限定表名,格式为"用户名.表名"。例如,如果要查询名为"other_user"的用户下的名为"other_table"的表,可以使用以下语句:
```
SELECT * FROM other_user.other_table;
```
需要注意的是,在触发器中查询其他用户下的表需要有足够的权限。如果没有足够的权限,则需要向管理员申请相应的权限。另外,建议在使用全局限定表名时,尽可能地使用完整的表名以避免歧义。
相关问题
oracle创建触发器,在修改用户信息表后,把修改之前的数据插入另一张表中
好的,我可以帮您解答这个问题。
在Oracle中创建触发器可以在数据表上定义一个事件,当该事件发生时,触发器会自动执行一段预定义的代码。在本例中,您可以在用户信息表上创建一个触发器,在修改操作发生时将修改之前的数据插入到另一张表中。
下面是一个示例触发器的代码:
```
CREATE OR REPLACE TRIGGER trigger_name
BEFORE UPDATE ON user_info_table
FOR EACH ROW
BEGIN
INSERT INTO other_table (col1, col2, col3)
VALUES (:OLD.col1, :OLD.col2, :OLD.col3);
END;
```
其中,`trigger_name`是您为触发器命名的名称,`user_info_table`是您要监视的数据表名称,`other_table`是您要插入数据的另一张表名称,`col1, col2, col3`是您要插入的表中的列名。
在触发器的代码块中,`OLD`引用了修改之前的数据,`NEW`引用了修改之后的数据。在本例中,我们将`OLD`中的数据插入到另一张表中。
希望这个示例对您有所帮助!
oracle查询触发器
要查询Oracle数据库中的触发器,可以使用以下SQL语句:
```
SELECT TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT, TABLE_NAME
FROM USER_TRIGGERS
```
这将返回当前用户下所有触发器的名称、类型、触发事件和表名。
如果想要查询指定表的触发器,可以使用以下SQL语句:
```
SELECT TRIGGER_NAME, TRIGGER_TYPE, TRIGGERING_EVENT, TABLE_NAME
FROM USER_TRIGGERS
WHERE TABLE_NAME = 'your_table_name';
```
将 "your_table_name" 替换为你要查询的表名。
阅读全文