私は 1 つのテーブル性別を持っています。このテーブルには、「男性」と「女性」の 2 つのエントリのみが存在し、これら 2 つのエントリのみが含まれます。ここで、これら 2 つの値を置き換える手順を書きたいと思います。出力は次のようになります。
Input Output
sex sex
------------------------
male female
female male
female male
male female
エラーが発生するプロシージャを作成しています。カーソルを使用して複数の行をフェッチしています。update文一つでできるのはわかっているのですが、こんな風にやってみたいと思います。
declare
v_gen gender%rowtype;
cursor cur_gender is
select * from gender;
begin
open cur_gender;
loop
fetch cur_gender into v_gen;
select * from gender;
if v_gen='male'
then
update gender set sex='female';
else
update gender set sex='male';
end if;
exit when v_gen%notfound;
end loop;
close cur_gender;
end;