2017-11-01 10 views
0

아래 코드를 실행하면 오류가 발생합니다.시퀀스에서 값이 생성되지 않습니다.

declare 
x int ; 
begin 
x:=APP_COMP_DETAIL_STG_ID_SEQ.nextval; 
dbms_output.put_line('values is '||x); 
end; 
/

오류 보고서 - ORA-01403은 : 데이터가 ORA-06512 찾을 수 없습니다 : 행에서 4 01403. 00000 - "데이터를 찾을 수 없음" * 원인 : 데이터가 객체에서 발견되지 않았다 . * 조치 : 오브젝트의 데이터가 가져 오기의 종료로 인해 없었습니다.

실제로 시퀀스에 아무런 값이 생성되지 않습니다. 유효하고 최대 값에 도달하지 않습니다. 나는이 문제가 어디에 있는지 정말로 모른다. select APP_COMP_DETAIL_STG_ID_SEQ.nextval from dual;을 실행할 때 출력이 나타나지 않습니다. 이것은 생산 문제입니다. 가능한 한 빨리 해결하십시오.

답변

0

시퀀스에는 문제가 없습니다. 문제가 이중 테이블에 있습니다. 실제로 누군가가 우리 지역의 환경에서 이중 테이블을 만들었습니다. 따라서 sys.dual의 동의어를 가리키는 대신 로컬 테이블을 가리키고있었습니다. 해당 테이블을 삭제 한 후 문제가 해결되었습니다. sys.dual을 사용할 수도 있지만 좋은 방법은 아닙니다.