关于DBLink for 2 Database Oracle的问题

时间:2019-03-28 11:33:27

标签: database oracle dblink

我有一台具有2个数据库的服务器:dbtest和checkdb。 我需要dbtest的用户user_b可以在其他数据库的表上进行选择。 我该如何设置dblink?

2 个答案:

答案 0 :(得分:0)

在脚本顶部运行

alter session set global_names=false;

然后,每当需要从checkdb提取数据时,都将链接添加为后缀。不知道您的数据库是如何定义的,但是类似

user_b在dbtest上

select * from table_name@dblink 
#might be that dblink is not the exact name. 

希望有帮助。

答案 1 :(得分:0)

以用户身份连接到其中一个数据库,并按照语法(https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/CREATE-DATABASE-LINK.html#GUID-D966642A-B19E-449D-9968-1121AF06D793)创建到另一个数据库的数据库链接。我想它已经好久没有改变了。

例如:

SQL> create database link dbl_scott     -- database link name
  2    connect to scott                 -- you're connecting to this user (scott) ...
  3    identified by tiger              -- ... which is identified by this password (tiger)
  4    using 'db11g:1521/orcl';         -- using clause has a database server (db11g):port (1521)/service name (orcl)

Database link created.

SQL> -- Testing; it has to return a row
SQL> select * From dual@dbl_scott; 

D
-
X

SQL>

可以通过放置目标数据库别名(用USING文件写在数据库服务器上的别名)来缩短TNSNAMES.ORA子句。如果您无权访问该文件(因为您不是DBA),则上述选项可以正常使用。

请注意-即使您使用无效的设置-可能也会创建数据库链接,但是它将无法正常工作。例如:

SQL> drop database link dbl_scott;

Database link dropped.

SQL> create database link dbl_scott
  2    connect to xyzalksfjlaskfj
  3    identified by abc
  4    using '9809803242';

Database link created.

SQL> select * from dual@dbl_scott;
select * from dual@dbl_scott
                   *
ERROR at line 1:
ORA-12154: TNS:could not resolve the connect identifier specified


SQL>

因此,请小心。