콘텐츠
ORA-00955로 더 잘 알려진 Oracle PL / SQL 955 오류는 사용자가 테이블, 뷰, 색인, 동의어 또는 그룹과 같은 기존 개체가 사용중인 이름으로 데이터베이스에 개체를 만들 때 발생합니다. 객체를 다른 이름으로 지정하면 오류가 해결됩니다.
ORA-00955는 이미 다른 개체에 지정된 이름과 함께 발생하는 예외 오류입니다. (저스틴 설리반 / 게티 이미지 / 게티 이미지)
오류 메시지
사용자는 Oracle PL / SQL 명령 줄에 특정 이름으로 개체를 만들고 "ORA-00955 이름이 이미 기존 개체에서 사용 중입니다"라는 메시지를받습니다.
원인
오류 메시지는 사용자가 업데이트를 설치하거나 테이블이나 인덱스를 지우거나 작성하는 스크립트를 Oracle PL / SQL에서 실행하거나 시스템 정의 된 개체에 예약 된 단어를 사용할 때 발생할 수 있습니다. 일반적으로 사용자는 데이터베이스의 다른 개체에 이미 지정된 이름으로 개체를 만들려고합니다.
솔루션
사용자는 다른 이름이나 개체를 선택하거나 기존 개체를 수정하고 이름을 변경하여 원하는 이름을 사용할 수 있도록하는 것이 좋습니다. 다른 사용자의 이름이 사용 중인지 확인하려면 DBA_OBJECTS 또는 USER_OBJECTS를 참조하십시오.
또한 다음 명령문을 사용하여 기존 이름에 대한 닉네임과 공용 동의어를 확인하십시오.
SELECT * FROM ALL_OBJECTS 어디 ObjectName = "이름";
ALL_OBJECTS 테이블에는 특정 로그인 ID에 대해 사용 가능한 모든 사용자 액세스 가능 오브젝트 목록이 들어 있습니다. 이름을 재사용하려면 이름이 같은 원치 않는 모든 객체를 삭제하십시오.
예외 처리를 사용하여 오류 무시하기
사용자는 객체 생성 오류를 무시하는 예외 처리기를 생성하여 ORA-00955를 우회 할 수 있습니다. 오류를 처리하고 상태에 "NULL"을 할당하는 PL / SQL 코드를 작성하십시오.
MyNamedTableExists EXCEPTION을 선언하십시오. pragma exception_init (MyNamedTableExists, -955); sql_stmt varchar2 (50) : = '테이블 임시 저장 (col1 번호) 생성'; 시작 / 즉각적인 sql_stmt를 실행하십시오. / CREATE TABLE MyNamedTableExists AS SELECT * FROM MySupposedTable; /+ 테이블 이름이 이미 존재하면 ORA-955 오류 무시) / EXCEPTION 때 MyNamedTableExists NULL을; END;