在oracle 中schema與用戶是一一對應的關係,當建立一個用戶默認會爲建立一個與用戶名相同的schema。如今系統中有部分表在用戶A下,業務需求建立用戶B可以查詢A用戶建立的表;登陸B用戶發現表不存在,因而網上找了一番,最終有一下方案解決:sql
方案一:session
B用戶查詢時帶上A用戶的schema,例:oracle
select * from A.table
方案二:code
臨時修改當前用戶的schema,執行下面SQL事件
alter session set current_schema= A(schema); select * from table;
方案三:io
after log on事件上作觸發器執行上面的語句table
create or replace trigger set_default_schema after logon on B.schema begin execute immediate 'alter session set current_schema=A(schema)';