oracle数据同步 建同义表后报错:无法解析指定的连接标识符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据同步 建同义表后报错:无法解析指定的连接标识符相关的知识,希望对你有一定的参考价值。

/*******************************************/
--可用数据库
--1.本地库
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
) )
--2.统计库
BFSAS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = bfsas)
) )
/********************************************/
--在本地库和统计库里都有test1表,结构一样.
--现需要当统计库中的test1表变化时,本地库里的test1也相应变化

/*******************************************/
--当从统计库向本地库同步数据时,在统计库上做了所有的设置:
--在统计库中建立bfsas与orcl的dblink,创建dblink名为 DBLINK01

create public database link DBLINK01
connect to scott
identified by tiger
using 'orcl'

--对test1表建立同义表test001
create or replace synonym test001
for orcl.test1@DBLINK01

/********以上运行都没问题*********/

--运行统计库上的test001;
select * from test001;

--此时,报错:
ORA-12154:TNS:无法解析指定的连接标识符
在guanam 亲的指导下,我在统计库tnsname下边加了orcl的tns entry
重新运行出现新的报错,如图。
ORA-00942:表或视图不存在
ORA-02063:紧接着line(起自dblink01)

create or replace synonym test001 for orcl.test1@DBLINK01;
语句本身就错了,你的的用户是scott,不是orcl,改成如下试试:
create or replace synonym test001 for scott.test1@DBLINK01;
参考技术A 统计库上的tnsname加下边的tns entry了没有

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
) )

无法在 Oracle 中使用函数、过程或序列的同义词

【中文标题】无法在 Oracle 中使用函数、过程或序列的同义词【英文标题】:Unable to use synonym of functions, procedures or seq in Oracle 【发布时间】:2014-03-21 13:18:32 【问题描述】:

我在用户 ID XXX 的用户 ID YYY 中创建了 functions/proc/seq 的同义词。

create SYNONYM my_seq FOR XXX.my_seq

当我尝试在用户 YYY 中使用 seq 时,出现以下错误:

ORA-00942:表或视图不存在

and with functions : ORA-00904: : invalid identifier

请告诉我哪里做错了。

【问题讨论】:

它显示在 Sqldeveloper 的同义词列中。 您需要在对象上修复 GRANTS。 您能帮帮我吗?实际上,我对 Oracle DB 很固执:D 【参考方案1】:

我将用一个简单的例子来演示。我在一台服务器上有两个模式。 Schema1 和 Schema2。

我登录到 Schema1 并运行下面的脚本。

-- Create sequence 
create sequence originalSeq
minvalue 1
maxvalue 999999999999999999999999
start with 1
increment by 10
cache 20;


GRANT SELECT ON originalSeq TO SCHEMA2;

然后我登录到 Schema2 并运行以下脚本。

    create or replace synonym pointertooriginalsreq
      for SCHEMA1.originalSeq;  

select pointertooriginalsreq.nextval from dual

这应该适用于 Oracle 8.1.7 以上的所有版本。如果您仍然遇到问题,请告诉我。

【讨论】:

【参考方案2】:

您必须提供来自 XXX 用户的授权:

GRANT SELECT ON my_seq TO YYY;

【讨论】:

以上是关于oracle数据同步 建同义表后报错:无法解析指定的连接标识符的主要内容,如果未能解决你的问题,请参考以下文章

SQLPLUS能连接oracle10g,PLSQL也能连,但网页程序却报错ORA-12154: TNS: 无法解析指定的连接标识符

PLSQL链接oracle报错--ORA-12154: TNS: 无法解析指定的连接标识符

PLSQL链接oracle报错--ORA-12154: TNS: 无法解析指定的连接标识符

exp/imp报错:ORA-12154: TNS: 无法解析指定的连接标识符

oracle连接不了 报ORA-12154:TNS:无法解析指定的连接标识符

无法在 Oracle 中使用函数、过程或序列的同义词