在系统数据通信间经常会有数据库的数据直接引用,使用视图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;