2009-08-10 8 views
1

다른 세부 사항과 함께 직원 급여가있는 월별 급여를 확인하고 싶습니다.null 값 반환 문제

필자는 PL/SQL 블록을 만들었지 만 기존 직원 ID를 다른 테이블과 비교하기 위해 조건을 지정하면 일부 null 값이 반환되므로 내 테이블이 더 이상 이동하지 않습니다.

set serveroutput on 
declare 
    emp_id NUMBER :=&emp; 
    temp NUMBER; 
begin 
    select nvl(employee_id,10) into temp FROM bhavya_temp where bhavya_temp.employee_id=emp_id; 

    dbms_output.put_line(temp); 

    if temp is NULL 
    then 
    dbms_output.put_line('employee ID does not exist'); 
    else 
    dbms_output.put_line('bye'); 
    end if; 
end; 

난에 도움을 3도하지 않은 더

Error report: 
ORA-01403: no data found 
ORA-06512: at line 6 
01403. 00000 - "no data found" 
*Cause:  
*Action: 

감사를 입력하면 결과가

anonymous block completed 
1 
bye 

입니다 테이블에 존재 직원 ID 1 또는 2를 입력하면 전진.

+0

너무 많은 느낌표 –

+0

이 그들을 제거 었음을 역할을합니다. –

+0

무엇을하고 싶습니까? – David

답변

2

는 예외 블록에서 선택 stament 랩하고 '데이터를 찾을 수 없음'예외를 캐치하고 그에 따라

3

문제점을 재현 할 수 있도록 일부 예제 데이터로 테이블 작성 명령문을 작성하면 도움이됩니다.

질문 : ID가있는 행이 존재하지 않으면 ORA-1403을 얻으십시오. 데이터가 없습니다. 변환 할 NULL이 없습니다. 오라클은 당신을 위해 줄을 꿈 꾸지 않습니다.

4

필자는 PL/SQL을 작성한 적이 없지만 a very similar error is reported here입니다.

BEGIN ... EXCEPTION .. END 블록 내부에 SELECT ... INTO 부분을 삽입하여 문제를 처리 할 수있는 것 같습니다.

희망이 도움이됩니다.