using 'SCBCHR'; <---这里是你的到HR的连接串. 请问一下,这个连接串在哪里定义的,具体内容是什么?
using 'SCBCHR'; 这里的TNS连接字串必须在你要建立DB Link的数据库机器上有此配置!而不是你的客户端哦
在MAS数据库这端,有域名,当然平时用scbchr也可以连接数据库, 那是因为在SQLNET。ORA中定义了默认域名的关系。 但是建dblink时,必须带上域名。 你应当查看SQLNET.ORA文件中的names.default_domain参数,如world 然后在建立时用 create database link SCBCHR.CIMC.COM connect to SYS identified by change_on_install using 'SCBCHR.world'; <---这里要加域名。
CREATE DATABASE LINK数据库链接名CONNECT TO 用户名 IDENTIFIED BY 密码 USING ‘数据库连接字符串’;
数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样数据库全局名称可以用以下命令查出 SELECT * FROM GLOBAL_NAME;查询远端数据库里的表 SELECT …… FROM 表名@数据库链接名;
如果不行的话你可以建立这个表的别名来进行解决。
create database link SCBCHR.CIMC.COM
connect to SYS identified by change_on_install
using 'SCBCHR'; <---这里是你的到HR的连接串.
另外:
表中如果有特殊字段类型,如LONG类型的话,是不能跨库操作的,此时建立视图也会不成功
另外,我曾见过一台数据库服务器,装的是ora816的,不清楚安装盘是哪里来的,装上后数据库可以正常跑,就是少了几种功能,比如只有一种分区支持,可以创建数据库链接,但创建后的db_link状态是不正常的。
把dblink的名字由原来的scbchr.cimc.com改成scbchr.us.oracle.com。但我不知道为什么,是不是两个数据库的字符集不同造成的,请各位告诉我,谢谢!
请问一下,这个连接串在哪里定义的,具体内容是什么?
这里的TNS连接字串必须在你要建立DB Link的数据库机器上有此配置!而不是你的客户端哦
那是因为在SQLNET。ORA中定义了默认域名的关系。
但是建dblink时,必须带上域名。
你应当查看SQLNET.ORA文件中的names.default_domain参数,如world
然后在建立时用
create database link SCBCHR.CIMC.COM
connect to SYS identified by change_on_install
using 'SCBCHR.world'; <---这里要加域名。
数据库连接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.数据库参数global_name=true时要求数据库链接名称跟远端数据库名称一样数据库全局名称可以用以下命令查出
SELECT * FROM GLOBAL_NAME;查询远端数据库里的表
SELECT …… FROM 表名@数据库链接名;