使用Oracle DBLink进行数据库之间对象的访问操作

摘要:
oracle有自己的dblink函数,用于在逻辑上将多个oracle数据库视为一个数据库,也就是说,您可以在另一个数据库中操作一个数据库的对象。例如,如果我们创建了一个新的数据库1,您需要在数据库2中操作表,或者您需要在远程计算机上操作数据库3中的表,您可以使用强大的DBLink功能!

Oracle中自带了DBLink功能,它的作用是将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象,例如我们新建了一个数据database1,我们需要操作数据库database2中的表,或者我们需要操作远程机器上数据库database3中的表,我们就可以使用dblink这个强大的功能!
1、我们如果要创建全局的DBLink,就是说无论什么角色都可以使用,那么我们需要先确定用户是否有DBLink权限,如果没有则需要使用sysdba角色给用户授权:
查看用户是有有DBLink权限:
select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
没有,则使用sysdba授权:
grant create public database link to dbusername;

2、使用语句创建DBLink:
create database link 要创建的dblink名称
connect to 要连接数据库的用户名 identified by 要连接数据的密码
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 连接数据库主机IP地址)(PORT = 端口号))
)
(CONNECT_DATA =
(SERVICE_NAME = 连接数据库服务名)
)
)';
如果创建全局 dblink,必须使用 systm 或 sys 用户,在 database 前加 public:
create public database....
例如,在testdb2中创建test_dblink,来操作主机192.168.1.254中testdb1数据库:
create database link tset_dblink
connect to username identified by password1
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.254)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = testdb1)
)
)';

3、使用DBLink:
查询另一个数据库中的数据,其他修改、删除是一样的使用,都是另一个数据库表名@本数据库创建dblink名称:
select xxx FROM 表名@dblink名称;
例如我们在testdb2中使用dblink查看testdb1中tb_user表中的数据:
select * from tb_user@tset_dblink;
查看数据中创建的dblink:
select owner,object_name from dba_objects where object_type='DATABASE LINK';
select * from dba_db_links;
删除相应的dblink:
drop database link dblink名称;
关闭dblink连接:
alter session close database link 'dblink_name'
创建和删除视图:
create or replace view 视图名 as (select 字段 from 用户.表名@dblink1);
drop view 视图名;

本文转自:http://blog.csdn.net/harderxin/article/details/39639181

免责声明:文章转载自《使用Oracle DBLink进行数据库之间对象的访问操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Centos7 k8s v1.5.2二进制部署安装-kube-proxyUnsupervised Open Domain Recognition by Semantic Discrepancy Minimization论文笔记下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

更新所有数据库索引统计信息

代码 USE masterDECLARE @SQL VARCHAR(1000) DECLARE @DB sysnameDECLARE curDB CURSOR FORWARD_ONLY STATIC FORSELECT [name]FROM sys.sysdatabasesWHERE [name] NOT IN ('model', 'tempdb')OR...

node——将用户提交的数据写入data.json文件

前续 当我们在进行将数据提交到某个网页时,需要将提交数据保存下来 1.提交数据 2.获得数据 3.保存数据 先看提交数据: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="styleshe...

IOS(数据库的应用)

在iPhone的开发过程中常常会用到数据库,而SQLite3是iPhone中支持的数据库。下面简单介绍一下iPhone中SQLite3数据库的用法: SQLite3简介 SQLite3是一个轻量级的数据库,完全使用C语言编写,使用简单方便。它是一个嵌入到程序进程的数据库,和其他一些数据库(MySQL,MS SQL)不同,它没有独立的进程。 1、打开数据库...

Oracle apex 搭建

参考文档 : 百度文库  《Oracle ERP APEX开发指南 》 APEX HOME:  /oracle11g/product/11.2/apex/apex Oracle home: /oracle11g/product/11.2/ step 1:/oracle11g/product/11.2/apex [statdb] >sqlplus /...

实验1:基于Weka的典型数据挖掘应用

一、实验目标 理解数据挖掘的基本概念,掌握基于Weka工具的基本数据挖掘(分类、回归、聚类、关联规则分析)过程。 二、实验内容 下载并安装Java环境(JDK 7.0 64位)。 下载并安装Weka 3.7版。 基于Weka的数据分类。 基于Weka的数据回归。 基于Weka的数据聚类。 基于Weka的关联规则分析。 三、实验步骤 1.下载并安装Jav...

POST提交数据方式

application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了。浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数据。 当直接提交form表单时,默认就使用此种方式。 multipart/form-d...