比如 A机器上有个数据库 databaseA, 有用户userA
另一机器B上有个数据库 databaseB, 有用户userB我想要用户UserB在数据库databaseB 中能查询userA的表,就像查询自己的表一样,不要导入导出。 可能吗?如果能,具体怎么做呢?
另一机器B上有个数据库 databaseB, 有用户userB我想要用户UserB在数据库databaseB 中能查询userA的表,就像查询自己的表一样,不要导入导出。 可能吗?如果能,具体怎么做呢?
建立DBLINK很容易实现,就像访问自已数据库中的表.
介绍如何创建DATABASE LINK
create table vendor as select * from gyda001@qianji
这样表明后面有一个@符号的语句,这个是DATABASE LINKS,它使得你在一个数据库中能使用另一个数据库中的数据。
首先,假如你的要使用DBLINK的数据库服务器的tnsnames.ora文件里已经包含了target_db这一条目,包括服务器地址,端口,服务名等,且能通过sqlplus user_name@target_db连接成功。然后运行下列语句,即可创建一个名为dblink_name的DBLINK。CREATE PUBLIC DATABASE LINK dblink_name
CONNECT TO user_name
IDENTIFIED BY password USING 'target_db';
然后你就可以通过table@dblink_name来访问target_db上用户user_name的table表。如果碰到无法处理服务器名:
碰到这个问题,大部分是由于由于初始化文件init.ora中的参数
global_names造成的。
把global_names=true 改成global_names=false;
你可以如下操作:
SQL>SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME LIKE 'global_names';
如果看到gloabal_names=true,则:
SQL〉ALTER SYSTEM SET global_names=FALSE;
详见:http://www.jobcorps.com.cn/blog/portal.asp?blogid=132
SELECT * FROM DBLINK.USER.TABLE;