oracle跨库查询dblink的用法实例详解

本文实例讲述了oracle跨库查询dblink的用法。分享给大家供大家参考,具体如下:

1.创建之前的工作

在创建dblink之前,首先要查看用户是否有相应的权限。针对特定的用户,使用 sqlplus user/pwd登录后,执行如下语句:

复制代码 代码如下:

select * from user_sys_privs t where t.privilege like upper('%link%');

在sys用户下,显示结果为:

SYS CREATE DATABASE LINK NO
SYS DROP PUBLIC DATABASE LINK NO
SYS CREATE PUBLIC DATABASE LINK NO

可以看出在数据库中dblink有三种权限:

CREATE DATABASE LINK--所创建的dblink只能是创建者能使用,别的用户使用不了
CREATE PUBLIC DATABASE LINK--public表示所创建的dblink所有用户都可以使用
DROP PUBLIC DATABASE LINK--删除指定dblink

如果想要改变某个用户的权限,需要在sys用户下修改:

复制代码 代码如下:

grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott;

查看dblink,有两种方式,分别如下:

①.

复制代码 代码如下:

select owner,object_name from dba_objects where object_type='DATABASE LINK';

②.

复制代码 代码如下:

select * from dba_db_links;

2. 创建dblink

create public database link LINK_NAME
connect to USRNAME identified by "PASSWORD"
using
'(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = XXX.XXX.XXX.XXX)(PORT = 1521))
(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = XXX))
 )';

注意:using后跟的是一个字符串,其中一定不要出现不必要的空格,否则会出错ORA-12514,在上面的代码中为了方便阅读其中进行了换行,可能会出现空格而导致错误,所以使用的时候将空格去掉就ok了。

这里LINK_NAM为自定的名称;USERNAME和PASSWORD为指定的oracle数据库中的用户名和密码,SERVICE_NAME如果不确定的话,可以通过以下语句获得:

复制代码 代码如下:

show parameter service_names;

或者

复制代码 代码如下:

select name,value from v$parameter where name='service_names'

3.dblink的使用

dblink的使用相对比较简单,把一般访问本地表时的表名改为如下格式即可:[user.]table@link_name。

复制代码 代码如下:

select studentid from abc.studeng@abc_ten;

4.删除dblink

确定要删除的dblink名字以后,可以通过drop命令直接将其删除:

复制代码 代码如下:

drop public database link abc_ten;

希望本文所述对大家Oracle数据库程序设计有所帮助。

时间: 2015-12-10

Oracle10g通过DBLink访问MySQL示例

1, 首先在Oracle所在计算机安装MySQL的Client端软件,并且x86_64和i386版本的都需要安装,以便可以连接MySQL数据库.查看Client安装情况: 复制代码 代码如下: rpm -qa |grep mysql mysql-5.0.45-7.el5 mysql-5.0.45-7.el5 得到两条记录,一条是x86_64的,一条是i386的.如果看到还没有安装mysql客户端软件,则需要安装: 复制代码 代码如下: yum install mysql yum install

Oracle DATABASE LINK(DBLINK)创建与删除方法

Oracle创建.删除DATABASE LINK 创建dblink: create database link [name] connect to [username] IDENTIFIED BY [password] using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = [ip])(PORT = [port])) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVI

Oracle中建立了dblink怎么使用

Oracle应用服务器OS 1.查看数据库的global_name SELECT * FROM GLOBAL_NAME; 2.查看global_name参数是true还是false show parameter global_name 如果为true,本地建立的dblink名称必须与远程的global_name一致才行. 3.创建dblink CREATE DATABASE LINK数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING '数据库连接字符串';

Oracle中dblink的实际应用示例详解

前言 本文介绍的是关于Oracle同义词+dblink的实际应用,下面话不多说了,来一起看看详细的介绍吧. 业务需求:原数据库(10.2.0.4.0),新数据库(11.2.0.3) 由于程序的需求原因,现在需要把新库上的某个用户直接映射到老库用户下: 1. 备份原库的用户 nohup exp scott/scott OWNER=scott BUFFER=10240000 STATISTICS=none RESUMABLE=y FILE=scott_all_exp.dmp LOG=scott_al

oracle数据库在客户端建立dblink语法

oracle服务器没有建立目标数据库的TNS时,在客户端(有权限的情况下)建立dblink语法如下: 复制代码 代码如下: create database link dblink_name connect to user_name identified by user_psw using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xx.xxx.xx)(PORT = 1521)) ) (CONNEC

oracle数据库关于索引建立及使用的详细介绍

索引的说明 索引是与表相关的一个可选结构,在逻辑上和物理上都独立于表的数据,索引能优化查询,不能优化DML操作,Oracle自动维护索引,频繁的DML操作反而会引起大量的索引维护. 如果SQL语句仅访问被索引的列,那么数据库只需从索引中读取数据,而不用读取表. 如果该语句同时还要访问除索引列之外的列,那么,数据库会使用rowid来查找表中的行. 通常,为检索表数据,数据库以交替方式先读取索引块,然后读取相应的表块. 索引的目的 主要是减少IO,这是本质,这样才能体现索引的效率. 1大表,返回的行

Oracle数据库快照的使用

正在看的ORACLE教程是:Oracle数据库快照的使用.oracle数据库的快照是一个表,它包含有对一个本地或远程数据库上一个或多个表或视图的查询的结果.正因为快照是一个主表的查询子集,使用快照可以加快数据的查询速度;在保持不同数据库中的两个表的同步中,利用快照刷新,数据的更新性能也会有很大的改善. 下面以我在开发襄樊市电信局170话费催缴系统中使用快照加快查询速度的实现过程为例来说明快照的使用方法: 170话费催缴系统是一个向用户电话播放催缴话费提示音的系统.用户的欠费金额存放在rs6000

Oracle数据库中建立索引的基本方法讲解

怎样建立最佳索引? 1.明确地创建索引 create index index_name on table_name(field_name) tablespace tablespace_name pctfree 5 initrans 2 maxtrans 255 storage ( minextents 1 maxextents 16382 pctincrease 0 ); 2.创建基于函数的索引 常用与UPPER.LOWER.TO_CHAR(date)等函数分类上,例: create index

通过JDBC连接oracle数据库的十大技巧

Java数据库连接(JDBC)API是一系列能够让Java编程人员访问数据库的接口,各个开发商的接口并不完全相同.在使用多年的Oracle公司的JDBC后,我积累了许多技巧,这些技巧能够使我们更好地发挥系统的性能和实现更多的功能. 1.在客户端软件开发中使用Thin驱动程序 在开发Java软件方面,Oracle的数据库提供了四种类型的驱动程序,二种用于应用软件.applets.servlets等客户端软件,另外二种用于数据库中的Java存储过程等服务器端软件.在客户机端软件的开发中,我们可以选择

Oracle报存储过程中调用DBLink同义词出现错误:PLS-00201: 必须声明标识符

前几天编写一个存储过程,需要访问远程数据库的字段,于是建立一个dbLink并建了同义词: CREATE PUBLIC DATABASE LINK orcl@dbc CONNECT TO orcl IDENTIFIED BY orcl USING 'orcl'; CREATE SYNONYM mtb FOR mytable@orcl@dbc: 这里之所以用orcl@bdc为dblink的名称是为了设置global_names=true. 然后新建一个存储过程调用该同义词: v_result mtb

oracle数据库导入导出命令解析

Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份. 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失). Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过Net Configuration Assistant添加正确的服务命名,其实你可以想成是客户端与服务器端 修了条路,然后数据就可以被拉过来了) 这样你可以把数据导出到本地,虽然可能服务器离你很远.

oracle数据库tns配置方法详解

TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client

入侵oracle数据库的一些技巧

软件作者:pt007[at]vip.sina.com版权所有,转载请注明版权 信息来源:邪恶八进制信息安全团队(www.eviloctal.com) 一.先看下面的一个贴子: Oracle数据库是现在很流行的数据库系统,很多大型网站都采用Oracle,它之所以倍受用户喜爱是因为它有以下突出的特点: 1.支持大数据库.多用户的高性能的事务处理.Oracle支持最大数据库,其大小可到几百千兆,可充分利用硬件设备.支持大量用户同时在同一数据上执行各种数据应用,并使数据争用最小,保证数据一致性.系统维护

oracle数据库迁移到MySQL的方法总结

前言 之前搭建了一个ExtJS + spring + Oracle 的这样一个报表系统的框架. 因为其他部门的要求, 也需要这个Framework 进行一些特殊的定制. 但是有一个问题是 Oracle 的数据库是需要收费的, 个人使用倒没什么问题, 公司使用的话就会有侵权的问题了. 而MySQL 则是完全免费的. 所以使用 ExtJS + Spring + MySQL  这样的组合应该就没什么问题了. 理论上来说, MySQL 已经被Oracle 收购, 这两者之间的Migrate 应该比较容易