Oracle Forms 10g를 사용하여 양식을 작성하여 사용자를 db에 추가하는 GUI를 작성합니다.pl/sql에서 예외 처리
이코드 : 모든 입력이 textboxes
이 (어떤 작품) 작성하는 경우
declare
firstname VARCHAR(15);
lastname VARCHAR(15);
usernameee VARCHAR(15);
emailll VARCHAR(15);
pass1 VARCHAR(15);
pass2 VARCHAR(15);
v varchar2(200);
begin
firstname := :HOMEADMIN1.TXTFIRSTNAME;
lastname := :HOMEADMIN1.TXTLASTNAME;
usernameee := :HOMEADMIN1.TXTUSERNAME;
emailll := :HOMEADMIN1.TXTEMAIL;
pass1 := :HOMEADMIN1.TXTPASSWORD;
pass2 := :HOMEADMIN1.TXTPASSWORD2;
if firstname is null or lastname is null or usernameee is null or
emailll is null or pass1 is null or pass2 is null then
message('Please fill all fields');
else
select Firstname into v from Person where Username = usernameee;
if sql%found then
message('This username is already taken');
else
select Firstname into v from Person where Email = emailll;
if sql%found then
message('This email is already taken');
else
insert into Person values (PersonSeq.nextval,firstname,lastname,usernameee,pass1,emailll,0,1);
commit;
end if;
end if;
end if;
end;
이 코드 검사가, 다음은 확인해야합니다 다음은 내가 Add User
버튼에 when-button-pressed
트리거에 사용되는 코드입니다 입력 된 username
및 email
이 이미 사용 된 경우 코드는 잘 컴파일되지만, email
또는 username
을 입력하면 NO_DATA_FOUND exception
을 처리해야 함을 나타내는 error 01403
이 표시됩니다. 여기 내 코드에서 어떻게 할 수 있습니까? 내가 처리해야하는 2 가지 조건 (질의)을 가지고 있고 어떻게해야할지 모르기 때문에 나는 붙어있다. 어떤 도움을 주시면 감사하겠습니다.
글쎄, "예외"로 "정상적인"동작 (행이없는 것으로 기본 설정)을 처리하는 것은 맛의 문제입니다. 따라서 나는 첫번째 해결책을 선호 할 것이다. –
첫 번째 솔루션을 사용하려면 select 문 바로 뒤에있는 조건을 사용해야합니까? – RoyNasr
MAX를 사용하면 초기 메시지에 게시 한 코드가 "있는 그대로"그대로 유지되며 변경 사항이 없습니다. MAX는 SELECT 문에만 추가됩니다. – Littlefoot