ora-01775 问题与expdp
0.
expdp XXX/XXX DIRECTORY=dpdata dumpfile=xxx_expdp.dmp
Export: Release 10.2.0.2.0 - 64bit Production on Tuesday, 15 July, 2008 10:09:41
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
ORA-39001: invalid argument value
ORA-01775: looping chain of synonyms
1.问题提出:
CREATE TABLE SCOTT.TESTA
(
A NUMBER(4),
B DATE,
C VARCHAR2(30 BYTE)
)
TABLESPACE USERS
create or replace synonym s1 for testa;
同义词已创建。
create or replace synonym s2 for s1;
同义词已创建。
create or replace synonym s1 for s2;
同义词已创建。
scott@ZWSORCL> select * from s1 ;
select * from s1
*
第 1 行出现错误:
ORA-01775: 同义词的循环链
但是expdp导出并不存在问题。
expdp scott/xxxx directory=tmp dumpfile=a.dmp
2.检查
select * from all_synonyms where table_owner='SCOTT';
能够看出已经形成loop。
但是expdp并不存在问题。
3.检查生产系统的表执行查询。
select * from all_synonyms where table_owner='XXX' and synonym_nametable_name ;
没有结果。
在查询:
select * from all_synonyms where table_owner='XXX' ;
发现SYS_EXPORT_SCHEMA_01的几个表存在同义词,感觉问题应该在这里。
删除这几个同义词,问题消失。
4.看来问题是以前执行expdp中断,SYS_EXPORT_SCHEMA_01存在开发人员建立了同义词,但是
以后又删除了这个表SYS_EXPORT_SCHEMA_01,而同义词依旧存在。
实际上建立这样的同义词,如果SYS_EXPORT_SCHEMA_01表不存在就是一个loop。
create public synonym SYS_EXPORT_SCHEMA_01 for icare.SYS_EXPORT_SCHEMA_01
SQL> select * from SYS_EXPORT_SCHEMA_01 ;
select * from SYS_EXPORT_SCHEMA_01
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
[@more@]expdp XXX/XXX DIRECTORY=dpdata dumpfile=xxx_expdp.dmp
Export: Release 10.2.0.2.0 - 64bit Production on Tuesday, 15 July, 2008 10:09:41
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
ORA-39001: invalid argument value
ORA-01775: looping chain of synonyms
1.问题提出:
CREATE TABLE SCOTT.TESTA
(
A NUMBER(4),
B DATE,
C VARCHAR2(30 BYTE)
)
TABLESPACE USERS
create or replace synonym s1 for testa;
同义词已创建。
create or replace synonym s2 for s1;
同义词已创建。
create or replace synonym s1 for s2;
同义词已创建。
scott@ZWSORCL> select * from s1 ;
select * from s1
*
第 1 行出现错误:
ORA-01775: 同义词的循环链
但是expdp导出并不存在问题。
expdp scott/xxxx directory=tmp dumpfile=a.dmp
2.检查
select * from all_synonyms where table_owner='SCOTT';
能够看出已经形成loop。
但是expdp并不存在问题。
3.检查生产系统的表执行查询。
select * from all_synonyms where table_owner='XXX' and synonym_nametable_name ;
没有结果。
在查询:
select * from all_synonyms where table_owner='XXX' ;
发现SYS_EXPORT_SCHEMA_01的几个表存在同义词,感觉问题应该在这里。
删除这几个同义词,问题消失。
4.看来问题是以前执行expdp中断,SYS_EXPORT_SCHEMA_01存在开发人员建立了同义词,但是
以后又删除了这个表SYS_EXPORT_SCHEMA_01,而同义词依旧存在。
实际上建立这样的同义词,如果SYS_EXPORT_SCHEMA_01表不存在就是一个loop。
create public synonym SYS_EXPORT_SCHEMA_01 for icare.SYS_EXPORT_SCHEMA_01
SQL> select * from SYS_EXPORT_SCHEMA_01 ;
select * from SYS_EXPORT_SCHEMA_01
*
ERROR at line 1:
ORA-01775: looping chain of synonyms