网站建设收徒弟,网站建设一条龙包括哪些服务,网络营销工程师是做什么的,卫生系统网站的建设和维护目的#xff1a;oracle中跨数据库查询 两台数据库服务器db_A(本地)和db_B(远程192.168.1.100)#xff0c;db_A下用户user_a 需要访问到db_B下user_b的数据解决#xff1a;查询得知使用dblink(即database link 数据库链)实现过程#xff1a;1、确定用户user_a有没有创…目的oracle中跨数据库查询 两台数据库服务器db_A(本地)和db_B(远程192.168.1.100)db_A下用户user_a 需要访问到db_B下user_b的数据解决查询得知使用dblink(即database link 数据库链)实现过程1、确定用户user_a有没有创建 dblink 的权限 select * from user_sys_privs where privilege like upper(%DATABASE LINK%); 2、如果没有以sys用户登录到本地数据库 给用户user_a赋权 grant CREATE PUBLIC DATABASE LINKDROP PUBLIC DATABASE LINK to user_a; 注 dblink有三种权限 CREATE DATABASE LINK所创建的dblink只能是创建者能使用别的用户使用不了 CREATE PUBLIC DATABASE LINKpublic表示所创建的dblink所有用户都可以使用 DROP PUBLIC DATABASE LINK 3、以用户user_a登录本地数据库创建dblink create public database link dblink1 connect to user_b identified by user_bpass using (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)))(CONNECT_DATA (SERVICE_NAME orcl))); 注 当数据库参数global_namefalse时就不要求数据库链接名称跟远端数据库名称一样。 数据库全局名称可以用以下命令查出 SELECT * FROM GLOBAL_NAME; 修改可以用以下语句来修改参数值 ALTER SYSTEM SET GLOBAL_NAMETRUE/FALSE; 4、创建完成引用 -- 查询、删除和插入数据和操作本地的数据库是一样的只不过表名需要写成“表名dblink服务器”而已。 例 select * from user_bTablenamedblink1 ; 一般情况下引用数据库链接可以直接将其放到调用的表名或视图名称后面中间使用一个 作为分割符 5、删除 DBLink drop public database link dblink1; 6、创建和删除同义词 对于经常使用的数据库链接可以建立一个本地的同义词方便使用 create or replace synonym 同义词名 for 表名; create or replace synonym 同义词名 for 用户.表名; create or replace synonym 同义词名 for 表名数据库链接名; drop synonym 同义词名; 7、创建和删除视图 create or replace view 视图名 as (select 字段 from 用户.表名dblink1); drop view 视图名; 其他 创建方式二要求数据库服务器db_A上 tnsnames.ora 中有 数据库db_B的映射 (省略) sqlcreate database link 数据库链路名 connect to 用户名 identified by 口令 using tnsnames.ora配置的主机字符串名;创建方式三: PL/SQL图形配置界面 问题 已经给了用户 dblink 的权限但创建时报权限不足的错 解决我给用户的是 CREATE PUBLIC DATABASE LINK权限所以创建时需要create public database link.... 而不能是create database link.... 待深入 每次使用dblink查询的时候均会与远程数据库创建一个连接dblink 应该不会自动释放这个连接如果是大量使用 dblink 查询会造成 web 项目的连接数不够,导致系统无法正常运行导致系统无正常运行。转载于:https://www.cnblogs.com/Neil223/p/5942739.html