oracle dblink

简介:
DBLink:主要是针对两台不同的数据库服务器,从一台数据库服务器的一个用户读取另一台数据库服务器下的某个用户的数据,这个时候可以使用dblink。
 
场景:数据库服务器分别为25和33,其中33为远程服务器,即我当前登录25,需要操作33的数据库。
 
----创建dblink
create public database link remote
connect to test identified by test
using 'remote33'
dblink 的名称为remote
test为登录33的用户名和密码
remote33为在25机器上tnsnames.ora中配置的到33上的网络服务名,如下:
 
remote33 =
(DESCRIPTION =
(ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.33)(PORT = 1521))
)
(CONNECT_DATA =
  (SERVICE_NAME = orcl)
)
)
所以首先要到目标数据库服务器25上配置tnsnames.ora

----还可以使用缺省登录方式创建,即不指定远程数据库的用户名和密码:
create public database link remote
using 'remote33'
在不指定用户名和口令的情况下,ORACLE使用当前的用户名和口令登录到远程数据库。假如我们通过pl/sql developer以test用户登录执行上述命令,然后再以 bjaic 用户登录到25上,执行 select * from  table@remote,则会报错:
ORA-00924:表或视图不存在;
ORA-02063:紧接着line(起自remote)
此时所要访问的表  table 不在数据库链接中指定的远程帐户bjaic下,但该帐户有访问该表的权限,那么我们在表名前要加上该表的用户名test。即:select * from  test. table @remote;
 
----public & private
public 对所有的数据库用户开放访问权。private  只对建立它的用户授权。公用数据库链接更为有用,因为它使你不必为每一个潜在用户创建单独的链接。即使是public,用户名仍旧固定,所有使用这个 dblink 的用户都作为用户 test 连接到远程数据库。

----如果 ssh  框架开发过程中要用到另一个 oracle 数据库中的表,但是 hibernate 不能直接对 dblink 中的表进行映射导致无法使用 hibernate 创建 pojo 类,解决的办法是在本地数据库创建 dblink 数据库表的 synonymous,再利用 hibernate对此synonymous 进行映射就可以建立映射关系了,需要注意的是创建的 synonymous 不要跟本地表同名这样 hibernate 将会映射本地表了。


本文转自 august 51CTO博客,原文链接:http://blog.51cto.com/august/116958,如需转载请自行联系原作者
相关文章
|
Oracle 关系型数据库 MySQL
Oracle通过DBLink连接MySQL
Oracle通过创建DBLink连接MySQL,查看修改MySQL表数据
9151 0
|
10月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
【YashanDB知识库】yashandb执行包含带oracle dblink表的sql时性能差
|
10月前
|
Oracle 关系型数据库 MySQL
【YashanDB知识库】oracle dblink varchar类型查询报错记录
这篇文章主要介绍了 Oracle DBLINK 查询崖山 DB 报错的相关内容,包括 ODBC 安装配置、数据源配置、dblink 环境配置、问题原因分析及规避方法。问题原因是 dblink 连接其他数据库时 varchar 类型转换导致的,还介绍了 long 类型限制、char 等类型区别,规避方法是修改参数 MAX_STRING_SIZE 支持 32K。
|
12月前
|
Oracle 关系型数据库 数据库
【YashanDB知识库】oracle dblink varchar类型查询报错记录
在使用Oracle DBLink查询VARCHAR类型数据时,可能会遇到多种报错。通过了解常见错误原因,采取合适的解决方法,可以有效避免和处理这些错误。希望本文提供的分析和示例能帮助你在实际工作中更好地处理DBLink查询问题。
396 10
|
存储 Oracle 关系型数据库
百度搜索:蓝易云【oracle dblink mysql查询text无法显示问题】
通过使用 `DBMS_HS_PASSTHROUGH` 包执行 MySQL 查询并返回 CLOB 类型结果,可以解决 Oracle 数据库中无法直接显示 MySQL TEXT 类型数据的问题。
163 0
|
SQL Oracle 关系型数据库
Oracle 使用DB link update table & TNS:linstener was not given the servicename in connect_data处理方式
业务需求:需要在Oracle1 的A表增加一个字段,这个字段来自于Oracle2 的B表的一个字段。
297 0
|
SQL Oracle 关系型数据库
创建Oracle DBLink及同义词方法
有时业务经常需要跨库执行SQL语句,就需要创建两个数据库之间的链接对象或通过同义词来实现。
740 0

推荐镜像

更多