使用同义词在另一个模式中访问序列

时间:2017-06-02 02:42:31

标签: oracle oracle11g

我正在尝试访问以下序列:

一个。位于另一个架构中 B.实际上是通过dblink的另一个数据库的同义词。

什么有效:

select schema.sequence@dblink.nextval from dual;

什么不起作用:

select schema.synonym.sequence.nextval from dual;

以上内容会返回'%s:无效标识符'

是否可以在不使用dblink注释的情况下访问远程序列?

1 个答案:

答案 0 :(得分:2)

是的,可以使用远程序列对象的同义词。

数据库1

SQL> conn jay

SQL> create sequence myseq increment by 1;

Sequence created.

数据库2

SQL> conn jay

SQL> create database link dbl_db1 connect to jay identified by jay using 'DB1';

Database link created.

SQL> create synonym myseq_syno for jay.myseq@dbl_db1;

Synonym created.

SQL> select myseq_syno.nextval from dual;

   NEXTVAL
----------
     1