紧急求助两个数据库关联查询问题 现在在两个服务器上各有一个数据库(db1,db2),各自的用户分别为(user1,user2),现在想把user1下的table1和user2下的table2进行关联分析,请问如何进行啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -- 创建一个 dblink,用 dblink 访问远程数据库! -- 在本地创建两个服务名:-- 即修改 tnsnames.ora 文件!-- (此文件一般在:$ORACLE_HOME/network/admin 目录下,-- 如:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora)-- 类似代码如下:# 我本地的服务名LYMORA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = luoyoumou)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = lymora) ) )# 远程机器的服务名:SZTYORALF7 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.7)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = sztyora) ) )# 192.168.5.7 是远程机器的 IP 地址# sztyora 是远程服务器的 Oracle SID# SZTYORALF7 是你创建的服务名!-----------------------------------------------------------------------# 然后在你本地机器的相应用户(你想哪个用户连接远程机器,就是哪个用户)# 下创建一个 DBLink (数据库链接),如:sqlplus /nologconn / as sysdbasys@LYMORA> grant create database link to scott;授权成功。已用时间: 00: 00: 00.07-- 此时创建远程数据库链接有两种方法:-- *1) 不依赖你本机器已经新建的远程服务名 ( sztyoralf7 )scott@LYMORA> create database link sztylf7 2 CONNECT TO hll IDENTIFIED BY szty2009hll 3 using '(DESCRIPTION = 4 (ADDRESS_LIST = 5 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.7)(PORT = 1521)) 6 ) 7 (CONNECT_DATA = 8 (SERVICE_NAME = sztyora) 9 ) 10 )';数据库链接已创建。已用时间: 00: 00: 00.15# *1) sztylf7 是新建的链接名;# *2) hll 是远程机器的一个用户;# *3) szty2009hll 是远程机器 hll 用户的密码;# *4) 192.168.5.7 是远程机器的IP;# *5) 1521 是远程机器的 Oracle 端口号; # *6) sztyora 是远程机器的 ORACLE SID;scott@LYMORA> select count(*) from city@sztylf7; COUNT(*)---------- 397已选择 1 行。已用时间: 00: 00: 05.65-- *2) 依赖你本机器已经新建的远程服务名 ( sztyoralf7 )scott@LYMORA> create database link sztylf7b connect to hll 2 identified by szty2009hll using 'SZTYORALF7';数据库链接已创建。已用时间: 00: 00: 00.00scott@LYMORA> select count(*) from city@sztylf7b; COUNT(*)---------- 397已选择 1 行。已用时间: 00: 00: 04.48-- 以上创建的都是私有链接(没有 public 关键字)-- 若要创建公共链接:scott@LYMORA> create public database link sztylf7b connect to hll 2 identified by szty2009hll using 'SZTYORALF7';-- 此时你本地数据库的其他用户可以用此链接连接到远程数据库!-- 删除链接:drop database link sztylf7b; -- 删除私有链接drop public database link sztylf7b; -- 删除公共链接 luoyoumou:不好意思补充一下,我是用toad连接服务器的,打开了您说的那个文件,现在已经存在那两个远程服务器了(db1,db2),在此情况下如何连接呢?谢谢 和你用什么工具没有关系。你先建立一个数据库连接dblink,然后将DB1下的user1的table1赋权限给DB2下的user2.就可以在DB2下使用了。不过必须带数据库连接。如果不想带就必须建同义词。 那就不是在我本地建dblink了吧?应该在db1或者db2上建了吧? -- toad 只是一个工具而已,只要创建了 dblink,用 toad 时借助dblink一样的运行你的语句! -- 所以:不管你用什么工具,你必须先 搞懂 dblink! 跪求高手,oracle中联机重做日志问题 关于Oracle安装目录空间不够的解决方法 oracle判断时间范围 <====>(参与就有分) 有木有高手可以高手告诉我怎么从JAVA中连接到oracle? 请教关于ORACLE触发器的问题 动态创建表后,添加记录问题? 求oci的说明文档? ORACLE临时表的删除问题 关于三个表查询的SQL语句,急 oracle 主从配置 SQL语句写法 Oracle面试题
-- 即修改 tnsnames.ora 文件!
-- (此文件一般在:$ORACLE_HOME/network/admin 目录下,
-- 如:D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora)
-- 类似代码如下:# 我本地的服务名
LYMORA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = luoyoumou)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = lymora)
)
)# 远程机器的服务名:
SZTYORALF7 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.7)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sztyora)
)
)# 192.168.5.7 是远程机器的 IP 地址
# sztyora 是远程服务器的 Oracle SID
# SZTYORALF7 是你创建的服务名!-----------------------------------------------------------------------
# 然后在你本地机器的相应用户(你想哪个用户连接远程机器,就是哪个用户)
# 下创建一个 DBLink (数据库链接),如:sqlplus /nolog
conn / as sysdba
sys@LYMORA> grant create database link to scott;授权成功。已用时间: 00: 00: 00.07-- 此时创建远程数据库链接有两种方法:-- *1) 不依赖你本机器已经新建的远程服务名 ( sztyoralf7 )
scott@LYMORA> create database link sztylf7
2 CONNECT TO hll IDENTIFIED BY szty2009hll
3 using '(DESCRIPTION =
4 (ADDRESS_LIST =
5 (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.7)(PORT = 1521))
6 )
7 (CONNECT_DATA =
8 (SERVICE_NAME = sztyora)
9 )
10 )';数据库链接已创建。已用时间: 00: 00: 00.15# *1) sztylf7 是新建的链接名;
# *2) hll 是远程机器的一个用户;
# *3) szty2009hll 是远程机器 hll 用户的密码;
# *4) 192.168.5.7 是远程机器的IP;
# *5) 1521 是远程机器的 Oracle 端口号;
# *6) sztyora 是远程机器的 ORACLE SID;scott@LYMORA> select count(*) from city@sztylf7; COUNT(*)
----------
397已选择 1 行。已用时间: 00: 00: 05.65-- *2) 依赖你本机器已经新建的远程服务名 ( sztyoralf7 )scott@LYMORA> create database link sztylf7b connect to hll
2 identified by szty2009hll using 'SZTYORALF7';数据库链接已创建。已用时间: 00: 00: 00.00
scott@LYMORA> select count(*) from city@sztylf7b; COUNT(*)
----------
397已选择 1 行。已用时间: 00: 00: 04.48-- 以上创建的都是私有链接(没有 public 关键字)
-- 若要创建公共链接:
scott@LYMORA> create public database link sztylf7b connect to hll
2 identified by szty2009hll using 'SZTYORALF7';-- 此时你本地数据库的其他用户可以用此链接连接到远程数据库!-- 删除链接:
drop database link sztylf7b; -- 删除私有链接
drop public database link sztylf7b; -- 删除公共链接
不好意思补充一下,我是用toad连接服务器的,打开了您说的那个文件,现在已经存在那两个远程服务器了(db1,db2),在此情况下如何连接呢?谢谢
-- toad 只是一个工具而已,只要创建了 dblink,用 toad 时借助dblink一样的运行你的语句!
-- 所以:不管你用什么工具,你必须先 搞懂 dblink!