CREATE DATABASELINK¶
说明¶
创建一个远程数据库连接
参数¶
public
如果指定PUBLIC,所有用户都能使用该数据库链接; 如果不指定PUBLIC,只有创建者或DBA用户有权限使用。
dblinkname
新建远程数据库链接的名字。
username
远程数据库的登录用户名。
password
username的登录密码。
hostname
远程数据库所在的主机地址。
port
远程数据库所用的端口号。创建时可以不指定端口号,创建后通过 ALTER DATABASELINK 语句修改端口号,才可以使用该链接来链接oscar服务器。
databasename
远程数据库的实例名。创建时可以不指定实例名,创建后通过 ALTER DATABASELINK 语句修改实例名,才可以使用该链接来链接oscar服务器。
tnsname
oracle数据库下的tnsname.ora文件里的一个连接的名称。
注解
使用神通数据库创建远程oracle服务器时需要注意:
安装oracle客户端并配置tnsname.ora文件,并且版本(32位或64位)必须与oscar后台保持一致。
设置ORACLE_HOME、NLS_LANG环境变量(运行oscar的用户对应的环境变量) 其中NLS_LANG根据神通编码格式设置,比如oracle是GBK编码,而神通是UTF-8编码,这时设置NLS_LANG= "AMERICAN_AMERICA.AL32UTF8"。
将oci动态链接库(linux上为libclntsh.so)所在的目录增加至动态链接库环境变量(运行oscar的用户的环境变量LD_LIBRARY_PATH)中。
连接ORACLE时,USING后的单引号里面,必须是tnsname.ora文件里的一个连接的名称。
示例¶
示例1:创建DBLINK
-- 清理环境
drop databaselink db_oscar;
drop databaselink db_oracle;
-- 创建dblink for oscar
create databaselink db_oscar connect to sysdba identified by 'szoscar55' using '10.0.4.59' port 2003 database 'osrdb';
-- 创建dblink for oracle
create databaselink db_oracle connect to system identified by '123456' using 'ORCL' FOR ORACLE;
示例2:创建链接神通服务器的DBLINK,并修改端口号port和数据库名databasename
-- 清理环境
drop databaselink db_oscar;
drop table t1;
-- 创建表
create table t1(a int);
-- 创建一个dblink连接用户sysdba,并进行查询
-- 若不指定端口号port和数据库名database,databaselink可以创建成功,但是会在连接时报错。
create databaselink db_oscar connect to sysdba identified by 'szoscar55' using '192.168.1.142';
select * from t1@db_oscar;
ERROR, FOR OSCAR: DBLINK:DB_OSCAR 未指定数据库名
-- 使用alter databaselink更改dblink连接的端口号、库名。
alter databaselink db_oscar connect to sysdba identified by 'szoscar55' using '192.168.1.142' port 2003 database 'osrdb';
select * from t1@db_oscar;
A(numeric) |
总数目:0