您的位置:首页 > 数据库 > Oracle

oracle dblink

2014-05-27 16:53 127 查看
创建dblink般有两种方式过创建dblink之前用户必须有创建dblink权限想知道有关dblink权限sys用户登录本地数据库:

  select * from user_sys_privs t
  where t.privilege like upper('%link%');
  1 SYS CREATE DATABASE LINK NO
  2 SYS DROP PUBLIC DATABASE LINK NO
  3 SYS CREATE PUBLIC DATABASE LINK NO
  看出数据库dblink有三种权限CREATE DATABASE LINK(所创建dblink只能创建者能使用别用户使用了)CREATE PUBLIC DATABASE LINK(public表示所创建dblink所有用户都使用)DROP PUBLIC DATABASE LINK
  sys用户下把CREATE PUBLIC DATABASE LINKDROP PUBLIC DATABASE LINK权限授予给用户
  grant CREATE PUBLIC DATABASE LINKDROP PUBLIC DATABASE LINK to scott;
  scott用户登录本地数据库
  1.创建dblink第种方式本地数据库tnsnames.ora文件配置了要远程访问数据库
  create public database link
  to_bylw connect to scott identified by tiger using 'bylw';
  其to_bylw创建dblink名字bylw远程数据库实例名scott/tiger登录远程数据库用户/密码本地数据库通过dblink访问远程数据库'bylw'scott.tb_test表,sql语句下所示
  select * from scott.tb_test@to_bylw;
  2.创建dblink第二种方式本地数据库tnsnames.ora文件没有配置要访问远程数据库
  create database link to_test
  connect to scott identified by tiger
  using '(DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))  )  (CONNECT_DATA =
  (SERVER = DEDICATED)
  (SERVICE_NAME = bylw)  )  )';  第二种把第种配置tnsnames.ora文件信息直接放创建dblink语句面第种情况tnsnames.ora文件信息下:  bylw =  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521))  )  (CONNECT_DATA =

oracle db_link东西我看见oracle sys下有link$表里面没有内容也能往里面写内容说没有权限才能插入数据呢

建议遇任何dba_ all_ user_ 或者包含 $ 字符视图或表都要试图往里面插东西
db link两数据库之间连接用用create database link 创建当创建之会发现看有关db_link视图被改变了比dba_db_links
当创建db link之前还需要配置tnsnames.ora该死文件让两数据库相互认识

两个数据库之间的表如何用SQL复制
192.168.1.2有数据库a 表b 导入到192.168.1.30 数据库C 表b 请问如何用sql将数据导入进取

表结构一样的情况,a库和c库在同一服务器上:
insert [192.168.1.30].[c].[dbo].[b] select * from [192.168.1.2].[a].[dbo].[b]

表结构一样的情况,a库和c库不在同一服务器上:
先建立数据库服务器之间的链接(dblink) 然后再执行下面的SQL
insert [192.168.1.30].[c].[dbo].[b] select * from [192.168.1.2].[a].[dbo].[b]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: