ORA-01403: Select to에 대한 데이터를 찾을 수 없습니다.
나는 받는 중입니다.ORA-01403: no data found
다음 쿼리에 대한 예외입니다.이 오류가 발생할 가능성은 얼마입니까?
SELECT trim(name)
INTO fullname
FROM ( SELECT n.name
FROM directory dir, store n
WHERE dir.name = n.name
AND dir.status NOT IN ('F', 'L', 'M')
ORDER BY n.imp, dir.date)
WHERE rownum <= 1;
이 오류를 어떻게 처리해야 합니까?
WHERE 조건을 설정했지만 레코드를 찾을 수 없거나 '데이터를 찾을 수 없음' 오류가 발생한 경우를 처리하는 것이 좋습니다.나는 위의 코드를 포장하여 쓸 것입니다.SELECT
독자적인 진술BEGIN/EXCEPTION/END
블록으로 막다
코드는 다음과 같을 수 있습니다.
BEGIN
SELECT trim(name)
INTO fullName
FROM (
SELECT n.name
FROM directory dir, store n
WHERE dir.name = n.name
AND dir.STATUS NOT IN ('F','L','M')
ORDER BY n.imp, dir.date
)
WHERE rownum <= 1;
EXCEPTION
WHEN NO_DATA_FOUND THEN
fullName := NULL;
END;
Sandeep가 설명한 표준 예외 처리가 (나의 경우와 마찬가지로) 많은 오버헤드로 보이고 a 또는 일부 개별 <찾을 수 없음> 값에도 문제가 없다면 다음과 같이 변환할 수 있습니다.
select col into v_foo from bar where 1=0 -- would provoke ORA-01403
=> ORA-01403이 제기되지 않음:
-- if NULL would be fine:
select (select col from bar where 1=0) into v_foo from dual
-- if individual "NOT_FOUND" value should be set to avoid standard exception handling:
-- (it depends on your col type, so it could e.g. be 'NOT_FOUND' or -1
-- or to_date( 'yyyy-mm-dd', '2100-01-01') )
select nvl( (select col from bar where 1=0), 'NOT_FOUND' ) into v_foo from dual
아마도 당신의 질문 때문일 것입니다.
SELECT n.name
FROM directory dir,
store n
WHERE dir.name = n.name
AND dir.STATUS NOT IN ('F','L','M')
ORDER BY n.imp,
dir.date
행을 반환하지 않습니다.
한다면dir.status
테이블에 null이 있는 경우not in
아마도 당신이 생각하는 것처럼 하지 않을 것입니다.행을 하나 이상 얻어야 한다고 생각해도 행이 0개일 수 있습니다.다음으로 전환할 수 있습니다.and not (dir.status in ('F,'L','M'))
대신에dir.status not in ('F','L','M')
.
참조용으로 이 항목을 참조하십시오.
예외는 잊어버려요...듀얼 테이블을 사용합니다.
select (
SELECT trim(name)
FROM ( SELECT n.name
FROM directory dir, store n
WHERE dir.name = n.name
AND dir.status NOT IN ('F', 'L', 'M')
ORDER BY n.imp, dir.date)
WHERE rownum <= 1
) into fullname
from dual;
B-) 쿼리에서 아무것도 반환하지 않으면 변수가 null로 채워집니다.
언급URL : https://stackoverflow.com/questions/21186411/ora-01403-no-data-found-for-select-into
'programing' 카테고리의 다른 글
Android:ViewPager WRAP_CONTENT를 사용할 수 없습니다. (0) | 2023.07.31 |
---|---|
UI WebView의 모든 쿠키를 삭제하는 방법은 무엇입니까? (0) | 2023.07.31 |
SQL 테이블 이름에 숫자를 포함하는 것이 좋습니까, 나쁘습니까? (0) | 2023.07.31 |
Android SSL 연결에 대한 트러스트 앵커를 찾을 수 없습니다. (0) | 2023.07.31 |
인터넷을 통해 MYSQL 사용자 액세스 가능 (0) | 2023.07.26 |