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
と入力するとerror 01403
が表示され、NO_DATA_FOUND exception
を処理する必要があることが示されます。 私のコードでこれをどうやって行うことができますか?私は2つの条件(クエリ)が処理される必要があり、どのようにわからないのでスタックされています。どんな助けもありがとう。
「通常の」動作(行が見つからないことを検出する)を「例外」として処理するのは味の問題です。したがって、私は最初の解決法を好むだろう。 –
私は最初の解決策を使用したい場合、select文の直後の条件をどうしたらよいでしょうか? – RoyNasr
MAXを使用すると、最初のメッセージに投稿したコードは "そのまま"のままです。変更はありません.MAXをSELECT文に追加するだけです。 – Littlefoot