在系統數據通信間經常會有數據庫的數據直接引用,使用視圖VIEW的方式實現。視圖調用通常會有兩種情況,一種是同一數據庫的視圖,一種是跨數據庫的視圖。
在同一數據庫地址不同用戶下,不過不同的用戶視圖調用需要進行授權,不同用戶的視圖建立代碼如下:
create or replace view v_tyqx_dwjd as select DWJDUUID,BM,MC,DWLX,PX,CXM,SJDW,SFYX from T_TYQX_DWJD;
然后進行授權:
grant select on v_tyqx_dwjd to test1;
然后登陸test1用戶,建立視圖
create or replace view t_bd_dw as select DWJDUUID,dwlx,mc,bm,sjdw,sfyx,cxm,px from V_TYQX_DWJD;
以上是同一數據庫下的視圖建立,另一種是跨數據庫的視圖建立,首先需要建立dblink,
create /* public */ database link dblink1 connect to dbusername identified by dbpassword
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';
查詢數據:
select xxx FROM 表名@dblink服務器;
或者建立視圖
create or replace view 視圖名 as (select 字段 from 用戶.表名@dblink1);
建立同義詞:
create or replace synonym 同義詞名 for 表名; create or replace synonym 同義詞名 for 用戶.表名; create or replace synonym 同義詞名 for 表名@數據庫鏈接名;
drop synonym 同義詞名;
刪除dblink如下:
drop /* public */ database link dblink1;