Baiyangcao

A dobe Programmer

Follow me on GitHub

Oracle 数据库连接 DBLink

27 Dec 2016

  • 创建数据库连接
CREATE [PUBLIC] DATABASE LINK {link name}
CONNECT TO {username} IDENTIFIED BY {password}
USING {connection string/tns name} 

其中USING关键词后面可以是数据库服务器上配置的TNS name服务命名, 或者是在tnsname.ora中配置的服务命名对应的连接字符串,如: (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.78)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )

  • 使用数据库连接:

数据库连接的使用很简单,只要在远程对象名之后添加@数据库连接名即可, 如要从远程数据库GTBASP_DX用户下获取JSYDSYQ表的数据,可使用如下语句:

 SELECT * FROM BASP_DX.JSYDSYQ@GT;
  • 删除数据库连接:
DROP PUBLIC DATABASE LINK {link name}
  • global_names

如果数据库参数global_names设置为true,则必须数据库连接的名称{link name} 必须与远程数据库GLOBAL_NAME相同。

global_names参数可以通过show parameter global_names得到, 而远程服务器的GLOBAL_NAME可以通过执行SQL语句 SELECT * FROM GLOBAL_NAME获得。

当global_names设置为false时,不可以在本地调用远程服务器中不存在 的函数,不仅仅是自定义函数,UTL_RAW.CAST_TO_RAW函数也不可以