首先两个库是必须的
这里我的两个库分别是orcl1与cradle_218
首先在cradle_218中建立实验要用到的表
--创建实验表
create table FOO
(
fid VARCHAR2(10) not null,
fname VARCHAR2(20),
fsex CHAR(4),
fage NUMBER(4)
);
-- 建立主键
alter table foo add constraint pk_foo_id primary key(fid);
--创建实验序列
create sequence SEQ_TESTID1
start with 1
increment by 1
nomaxvalue
nocache
nocycle;
--循环插入几条数据
declare
fid varchar2(20);
fname varchar2(20);
fsex char(4);
fage number(4);
flag number(4);
begin
fname :='test';
fsex := '1';
fage :=20;
for i in 1..10 loop
select SEQ_TESTID1.NEXTVAL into fid from dual;
insert into foo values(fid,fname,fsex,fage);
commit;
end loop;
end;
--查询foo的结果
select * from foo;
可以查到我们循环插入的10条数据。
我们 登陆到orcl1库下,同样建立foo表。sql语句与上面一致。只是不要执行下面的过程不要向里插入数据,建张空表即可。
下来我们在orcl1库中建立dblink来连接orcl1
代码如下 鄙人手写
create public database link
connect to identified by
using 'cradle_218' ;
第一句话,创建一个连接,连接的名字自己取
第二句话,给定要连接的库的用户名及密码
很多时候会有一个问题,就是连接不上,尝试一下将用户名和密码使用双引号括起来例如“username” “password”
第三句话,告诉本地数据库,对方数据库的描述符,一般都在tnsnames.ora文件中可以找到 .
接着测试连接:我们在orcl1库中输入:
select 1 from dual@cradle_218;
如果查出来结果那就证明已经连接OK了。
----------------------------------------------------------------------------------------------------------------------------
下面来一个比较白痴的测试:
在orcl1库中:select * from foo;
结果为空表。
依旧在orcl1中:select * from
foo@db_cradle;
结果为我们在cradle_218中建立的foo表并有已经插入的数据。很明显我们已经跨数据库进行了查询。
-----------------------------------------------------------------------------------------------------------------------------
此外也可以在orcl1中写入insert into
foo@db_cradle values(...);
如果你插入的values中有sequence那么需要将global_names的参数改成true
在init.ora中修改并重启数据库。
update
foo@db_cradle set ..where ..;
delete from
foo@db_cradle where ...;
能否在orcl1中删除cradle_218中的表的呢。。。经测试是不行滴~~至于是否有办法删我不太清楚。
-----------------------------------------------------------------------------------------------------------------------------
GO ON
先将orcl1中的空的foo表删掉
创建目录
create directory chunf as 'd:\' ;
grant
grant read,write on directory chunf to public;
-----------------------------------------
impdp
c>:impdp
system/******@orcl1 directory=chunf network_link=db_cradle tables=foo logfile = chunf.log
这样就可以把cradle_218中的foo表(数据)导入到orcl1下了。
-----------------------------------------------------------------------------------------------------------------------------
在整个的实验中orcl1数据库的角色相当于一个操作者而cradle_218库相当于一个被操作者。
一开始先由操作者orcl1发起操作,创建了dblink,跨库操作了被操作者cradle_218中的数据库表。
分享到:
相关推荐
Oracle DATABASE LINK,简称DBLINK,是一种在不同的Oracle数据库实例间建立连接的方式,允许用户在本地数据库上执行查询和操作远程数据库的数据。DBLINK为跨数据库的通信提供了简单且高效的解决方案。 创建DBLINK的...
### Oracle数据库创建DATABASE LINK详解 #### 一、概述 在Oracle数据库中,通过创建DATABASE LINK(简称DB LINK),可以实现在不同的数据库之间进行数据共享与交互。这种技术使得用户能够像操作本地数据库一样操作...
### Database Link经典详解 #### 一、创建Database Link ##### 1. 权限 - **创建者权限**:为了创建数据库链接(Database Link),账户必须具备`CREATEDATABASELINK`或`CREATEPUBLICDATABASELINK`的系统权限。这些...
### Oracle存储过程与Database Link详解 #### 一、Oracle存储过程概述 在Oracle数据库中,存储过程是一种预先编译并存储在数据库中的SQL程序块,它可以接收输入参数、返回输出参数,并执行复杂的业务逻辑。存储...
本文档是在开发oracle过程中总结出来的,希望对想了解oracle db link的人有帮助
Oracle 创建 Database link 方法 Oracle 创建 Database link 方法是指在 Oracle 中创建一个 Database link 的过程,这样可以实现跨库访问,即在一个数据库中可以访问另一个数据库中的数据。下面将详细介绍如何创建...
Oracle数据库的Database Link是连接不同数据库之间的一种机制,它允许用户在本地数据库上执行查询,同时访问远程数据库的数据,仿佛这些数据就在本地一样。Database Link是Oracle数据库提供的一种分布式数据库功能,...
oracle create database link
databaselink是oracle数据库连接另一个数据库(可以是非oracle数据库)用的连接
标题中的"ADO.rar_ADO CLASS_Database link_class"暗示了我们即将探讨的是关于ADO(ActiveX Data Objects)的类库,用于数据库链接和访问。ADO是Microsoft开发的一个数据访问接口,它提供了一种简单的方式来与各种...
数据库链接(Database Link)在Oracle数据库中扮演着重要的角色,它允许用户在不同的数据库之间进行交互,无论是本地还是远程。数据库链接本质上是一个指向其他数据库的指针,它为用户提供了一个透明的方式来访问和...
SELECT owner, object_name FROM dba_objects WHERE object_type = 'DATABASELINK'; ``` 2. **使用 DBLink 进行查询**: - 在查询时可以直接使用 DBLink 名称作为表名的一部分: ```sql SELECT * FROM emp@...
在Oracle数据库中,DBLink(Database Link)是一种连接机制,允许用户从一个数据库(本地数据库)无缝地访问另一个数据库(远程数据库)中的数据,而无需实际的物理复制或迁移。DBLink使得数据交互和分布式查询变得...
在Oracle数据库系统中,数据库链接(Database Link)是一种强大的特性,它允许用户在不同的数据库实例之间建立连接,实现数据的跨库查询和交互。本文将深入探讨Oracle数据库中创建数据库链接的方法及其应用。 首先...
1. Private Database Link: 私有的 Database Link,由创建该 Database Link 的用户拥有,该 Database Link 在本地数据库的特定的 schema 下建立的。只有建立该 Database Link 的 schema 的 session 能使用这个 ...
CREATE DATABASE LINK link_name CONNECT TO username IDENTIFIED BY password USING 'service_name'; ``` 2. **未配置本地服务**: 当本地没有配置服务名时,可以使用完整的网络描述(即TNS名称)来创建...
- 使用 SQL 语句 `SELECT owner, object_name FROM dba_objects WHERE object_type = 'DATABASELINK';` 来查看数据库中所有的 DB Link。 - 另一个更为直观的方式是使用 `SELECT * FROM dba_db_links;`,这条命令...