同一个数据库实例下面的两个用户(A、B),能互相访问;
现在想通过A用户下面的链路DLK_A_B获取B用户下的同义词SEQ_B_ID(远程的一个序列,在其它用户下)的nextval以前的写法(连接到A),能正常获取:
select SEQ_B_ID.nextval@DLK_A_B from dual;今天突然执行上述语句不能正常执行,在sqlplus环境下半天没有返回?
测试过DLK_A_B(连接到A)和SEQ_B_ID(连接到B),都是正常的,没有问题于是改成了下面的写法(连接到A),就能正常获取了:
select B.SEQ_B_ID.nextval from dual;请问各位老大,是哪方面的配置或者其它问题引起select SEQ_B_ID.nextval@DLK_A_B from dual语句不能正常执行?
现在想通过A用户下面的链路DLK_A_B获取B用户下的同义词SEQ_B_ID(远程的一个序列,在其它用户下)的nextval以前的写法(连接到A),能正常获取:
select SEQ_B_ID.nextval@DLK_A_B from dual;今天突然执行上述语句不能正常执行,在sqlplus环境下半天没有返回?
测试过DLK_A_B(连接到A)和SEQ_B_ID(连接到B),都是正常的,没有问题于是改成了下面的写法(连接到A),就能正常获取了:
select B.SEQ_B_ID.nextval from dual;请问各位老大,是哪方面的配置或者其它问题引起select SEQ_B_ID.nextval@DLK_A_B from dual语句不能正常执行?
select B.SEQ_B_ID.nextval from dual;这种是正确的。
b访问这个序列的时候需要通过链路。A和B之间没有必要建链路。
查查系统表,看看link和同义词的状态。
还有,同一个数据库下,最好别使用link,link会增加一次解析过程。