oracle 학습 노트 (16) PL / SQL 이상 과 goto 문장
이상 하 다
미리 정 의 된 이상
Oacle 에서 흔히 볼 수 있 는 미리 정 의 된 이상:
오류 번호
이상 오류 정보 이름
설명 하 다.
ORA-0001
DUP_VAL_ON_INDEX
유일한 제한 을 파괴 하려 고 시도 하 다.
ORA-0051
TIMEOUT_ON_RESOURCE (적 게 사용)
자원 대기 시간 초과
ORA-0061
TRANSACTION_BACKED_OUT (적 게 사용)
잠 금 이 발생 하여 업무 가 취소 되 었 다.
ORA-1001
INVALID_CURSOR
열 리 지 않 은 커서 를 사용 하려 고 합 니 다.
ORA-1012
NOT_LOGGED_ON (적 게 사용)
오 라 클 에 연결 되 지 않 았 습 니 다.
ORA-1017
LOGIN_DENIED (적 게 사용)
잘못된 사용자 이름 / 암호
ORA-1403
NO_DATA_FOUND
SELECT INTO 에서 데 이 터 를 찾 지 못 했 습 니 다.
ORA-1422
TOO_MANY_ROWS
SELECT INTO 여러 줄 로 돌아 가기
ORA-1476
ZERO_DIVIDE
제로 가 되 려 고 시도 하 다
ORA-1722
INVALID_NUMBER
숫자 변환 실패
OTHERS (항상 마지막 에 쓴다)
다른 이상 (항상 이상 처리 블록의 마지막 에 놓 기)
Oracle 에는 이상 과 관련 된 두 개의 함수 가 내장 되 어 있다.
SQLCODE
Oracle 의 오류 코드 를 되 돌려 줍 니 다 SQLERRM
Oracle 에 돌아 온 오류 메시지 --
declare
v_empno employee.empno%type;
rec_emp employee%rowtype;
begin
v_empno := & ;
select * into rec_emp from employee;-- where empno=v_empno;
dbms_output.put_line(' :'||rec_emp.empno||', :'||rec_emp.ename);
--
exception
when NO_DATA_FOUND then --
dbms_output.put_line(' , :'||SQLCODE||','||SQLERRM);
when TOO_MANY_ROWS THEN
dbms_output.put_line(' , , :'||SQLCODE||','||SQLERRM);
when others then
dbms_output.put_line(' , :'||SQLCODE||','||SQLERRM);
end;
/
사용자 정의 이상
-- : “ ”
declare
v_empno employee.empno%type := & ;
rec_emp employee%rowtype;
ex_no_comm exception; --
begin
select * into rec_emp from employee where empno=v_empno;
if (rec_emp.comm is null or rec_emp.comm=0) then
raise ex_no_comm;--2.
end if;
--3.
exception
when ex_no_comm then
dbms_output.put_line(' ');
end;
/
이상 자바 처리 (이해)
SQL 의 함수
RAISE_APPLICATION_ERROR(error_number, error_message)
를 사용 하면 이상 을 자바 처리 에 맡 길 수 있 습 니 다.자바 에 서 는 try 를 통 해 SQLException 을 캡 처 한 후 SQLException 의 getCode 와 getMessage 방법 을 통 해 얻 을 수 있 습 니 다.goto 구문
-- XXX 3 , 30%。
declare
v_empno employee.empno%type;
v_sal employee.sal%type;
v_comm employee.comm%type;
begin
v_empno := & ;
select sal,comm into v_sal,v_comm from employee where empno=v_empno;
if v_sal>
update employee set sal=sal+sal*0.3 where empno=v_empno;
commit;
<>
null; -- ,
end;
/
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.