这里有新鲜出炉的精品教程,程序狗速度看过来!
Oracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。到目前仍在数据库市场上占有主要份额。
在一个数据库中某个用户下编写一个存储过程,在存储过程中使用 DBLINK 连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中
实现结果:在一个数据库中某个用户下编写一个存储过程,在存储过程中使用 DBLINK 连接另一个数据库,从此数据库中的一个用户下取数,然后插入当前的数据库中的一个表中。
二. 实现方法步骤:
1. 创建存储过程 2. 在存储过程中先创建 database link 3. 创建成功 4. 从另一个数据库取出数据插入到当前数据库中 5. 任务完成
三. 创建 DBLINK 的方法:
- create public database link dblink
- connect to totalplant identified by totalplant
- using '(DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = prd.gdc)
- )
- )';
语法解释:create public database link DBLINK 名字 (自己随便起) connect to 用户名 identified by 密码
- using '(DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = 要连接的数据库所在服务器的IP地址)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = 要连接的数据库的在本地的服务名(即要连接的数据库的SID))
- )
- )';
2. 如果创建 private 的 DBLINK
- create database link dblink
- connect to totalplant identified by totalplant
- using '(DESCRIPTION =
- (ADDRESS_LIST =
- (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
- )
- (CONNECT_DATA =
- (SERVICE_NAME = prd.gdc)
- )
- )';
四. 连接成功后从所连接的数据库中取数的方法:
- select * from tbl_ost_notebook@dblink;
说明:只需在表名的后面加上 "@DBLINK 名字" 即可。
五. 在当前数据库下查看所有的 DBLINK 的方法:
- select * from dba_db_links;
六. 删除当前数据库下的一个指定的 DBLINK 的方法:
1. 如果创建的是一个 public 的 DBLINK,删除时需要用 drop public database link dblink; 2. 如果创建的是一个 private 的 DBLINK,删除时需要用 drop database link dblink; 说明:drop public database link DBLINK 名字;
七. 查看当前数据库的全局数据库名的方法: 1. select * from global_name;
八. 查看当前用户具有哪些针对 DBLINK 的权限的方法:
- SELECT DISTINCT PRIVILEGE AS "Database Link Privileges"
- FROM ROLE_SYS_PRIVS
- WHERE PRIVILEGE IN ( 'CREATE SESSION','CREATE DATABASE LINK',
- 'CREATE PUBLIC DATABASE LINK');
来源: http://www.phperz.com/article/17/0619/336198.html