ORA-01775: 동의어가 순환 고리 유형으로 정의되어 있습니다. (ORA-01775: looping chain of synonyms)

ORA-01775: 동의어가 순환 고리 유형으로 정의되어 있습니다. ORA-01775: looping chain of synonyms

테이블을 조회하려니 'ORA-01775: looping chain of synonyms.' 오류가 발생하는군요! 😭 ORA-01775 오류는 다음과 같은 표현으로 발생해요.

ORA-01775: 동의어가 순환 고리 유형으로 정의되어 있습니다.

ORA-01775: 동의어가 순환 고리 유형으로 정의되어 있습니다. 원인

조회를 하다가 ORA-01775 오류가 발생한다면, 동의어(시노님)를 삭제하거나 테이블/뷰를 복구하면 됩니다. 실제 테이블은 없는데 해당하는 동의어만 남아있는 경우에 발생하는 오류이기 때문이에요.

보통 흔히 발생하는 사유는 첫 번째로 동의어는 남아있는데 테이블만 드랍 되었을 가능성이 있고, 두 번째 다른 이유는 최초 테이블 생성 단계에서 스크립트 문제 등으로 인해 테이블이 생성이 안 되고 동의어만 생성되어 남아있었던 가능성이 있어요.

즉, ORA-01775 오류의 발생 원인은 다음과 같이 요약할 수 있습니다.

  • 동의어만 남겨두고 테이블/뷰를 삭제한 경우
  • 테이블/뷰 생성 스크립트에서 테이블이 정상적으로 만들어지지 않고 시노님만 생성이 된 경우
ORA-01775 관련 사항을 조회하기 위해 데이터 딕셔너리 뷰를 조회해 보았습니다.

'DBA_OBJECTS'를 조회했더니 SYNONYM 객체만 조회되는 것을 확인할 수 있습니다. 테이블은 없는데 동의어만 남아있을 가능성이 있어서, 'DBA_OBJECTS' 테이블을 조회해 보았더니 예상대로 SYNONYM 만 남아있습니다.

TABLE 과 SYNONYM 2개의 행을 조회 가능한 테스트 테이블

보통 테이블을 만들고 동의어를 설정한다면 위의 같이 'TABLE'과 'SYNONYM'이 쌍을 이루고 있을 것입니다.

ORA-01775: looping chain of synonyms 해결하기

말씀드린 것처럼, 조회를 하다가 해당과 같은 예외가 발생한다면, 동의어를 삭제하거나 테이블/뷰를 복구해 주십시오.

DROP SYNONYM

Drop Synonym 명령을 통해 동의어를 정리하여 상기의 오류를 해결할 수 있습니다.

DROP PUBLIC SYNONYM synonym_Name;
DROP SYNONYM synonym_Name;

CREATE TABLE statement

다른 해결방법으로는 테이블/뷰를 생성(복구)하는 방법이 있습니다. 해당 동의어가 지칭하는 테이블 복구하는 명령은 CREATE TABLE statements를 이용하시면 됩니다.

CREATE TABLE create_table_statement
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗