質問: Doctor テーブル (Docname、Qualification、Specialization、Working_shift) を作成します。パラメーター化されたカーソルを使用して、患者にサービスを提供する専門分野とその日の勤務シフトを考慮して、医師の空き状況を確認します
私はデータベースを学習しているだけなので、質問が些細に思えるかもしれませんが、お詫び申し上げます。
値を入力すると目的の出力が得られますが、フラグ変数を使用せずに質問を解決する別の方法が必要です(例外を取得できるようにするため)...フラグを使用しないと、例外と同様に出力されますドックネームと資格
このクエリを実行するために oracle (通常の pl/sql ブロックのカーソル) を使用しています。
解決:
--table creation
create table doctor
(
docname varchar2(20),
qualification varchar2(20),
specialization varchar2(20),
shift varchar2(20)
)
私の解決策
declare
cursor c1 (specialization varchar2,shift varchar2) is select docname,qualification from doctor
where specialization='&sp' and shift='&shift'
sp doctor.specialization%type;
shift doctor.shift%type;
flag number(10);
begin
flag:=0;
for r1 in c1(sp,shift)
loop
if c1%found then
flag:=1;
dbms_output.put_line('Doctor is available');
dbms_output.put_line('Docname: '||r1.docname);
dbms_output.put_line('qualification: '||r1.qualification);
else
flag:=0;
end if;
end loop;
if flag=0 then
dbms_output.put_line('Invalid specialization/shift');
end if;
end;