oracle 저장 과정 중 ORA-01403: 데이터 문제 해결 방법을 찾지 못했습니다

텍스트 링크:https://blog.csdn.net/hp961218/article/details/80002256
오류 알림: ORA-01403: 데이터가 없습니다.
발생 원인: 조회가 데이터에 미치지 못할 때, 조회 결과를 정의된 변수에 주입합니다
해결 방법:
            1.이 저장 프로세스에서 벗어나기: 오류 알림을 쓸 수 있습니다:
                 when not_data_found then - 잘못된 데이터 프롬프트 메시지가 뒤에 옵니다.
            2.스토리지 프로세스에서 벗어나지 않음:
오류의 근본 원인은 데이터가 존재하지 않아 발생하는 빈값 문제이기 때문에 문제의 원리에 따라 대응하는 해결 방법을 얻을 수 있다.쿼리 주입 전에 매번 select count(1) into tempSize from table를 한 번 설정하고,tempSize가 1보다 큰지 판단한 다음, 1보다 크면 다른 변수에 쿼리 할당을 실행하면 데이터 오류를 찾을 수 없습니다.count(1) 0을 찾지 못하더라도,tempSize에 할당할 수 있기 때문에 빈 값을 피할 수 있습니다.
분석: 두 가지 방법 모두 빈값 문제를 해결할 수 있지만 두 번째 방법은 더욱 좋다. 저장 프로세스에서 벗어나지 않아도 된다. 실제로도 저장 프로세스는 대부분이 데이터를 갱신하는 데 사용되기 때문에 한 데이터를 찾지 못해 대량의 데이터를 갱신할 수 없기 때문에 두 번째 방법으로 해결하는 것을 추천한다.
메소드 2에 대한 설명:
예를 들어: 학생표의sid를 조회하고 변수를 부여한 다음에 일련의 조작을 해야 한다
select s.sid into studentId from student s where   ;

이 문장은 지정한 데이터를 찾지 못해서 인토에서 오류가 발생했습니다.위의 문을 다음과 같이 변경할 수 있습니다.
select count(*) into e_count from student s where   ;
if e_count > 0 then
  select s.sid into studentId from student s;
end if;
  studentId        

좋은 웹페이지 즐겨찾기