如何为整个查询设置架构

jay*_*kaa 0 sql oracle

我正在具有多个架构(用户)的数据库中工作-在SQL DEVELOPER(ORACLE)中

我想最初为查询设置一个架构,这样就无需在写入查询的每个表之前都包括架构名称。

寻找:

USE SCHEMA_NAME;
SELECT * FROM TABLE;
Run Code Online (Sandbox Code Playgroud)

代替:

SELECT * FROM SCHEMA_NAME.TABLE;
Run Code Online (Sandbox Code Playgroud)

APC*_*APC 5

我们可以使用设置不同的默认架构alter session

alter session set current_schema = SCOTT;
Run Code Online (Sandbox Code Playgroud)

这意味着我们可以在SCOTT模式中引用对象,而无需在对象前加上SCOTT。也就是说,scott.emp我们不能只是:

select * from emp;
Run Code Online (Sandbox Code Playgroud)

注意,我们现在需要在我们自己的模式中为对象添加前缀:

select * from my.table_1;
Run Code Online (Sandbox Code Playgroud)

另外,在不清楚的情况下,设置current_schema不会授予任何特权:如果SCOTT尚未向我们授予EMP上的INSERT或SALGRADE上的SELECT权限,我们将无法使用此技术来获得提升的访问权限。