2012-04-13 4 views
0
set serveroutput on; 
declare 
temp_id applicant.id%type; 
cursor c1 is select id from applicant where father like 'xyz'; 
begin 
if not c1%isopen then open c1; 
end if; 
loop 
fetch c1 into temp_id; 
dbms_output.put_line(temp_id); 
exit when c1%notfound; 
end loop; 
close c1; 
end; 
/

私はIDの列を持つテーブル申請者を持っています。私はカーソルが何かを取り出すとは思わない。手順は正常に完了しますが。 「xyz」状態のような父親のどこにエラーがありますか?PL/SQLカーソルは次のコードの出力なし

+2

別の行を追加することもできます。dbms_output.put_line(' inside ');既存のdbms_outputの下に、行を戻すかどうかを確認します。そうでなければ、私はxyzのような条件の父親に会う行はないと示唆しています。おそらく、%xyz%のような下位(父)をワイルドカードとして使用し、父のフィールドのすべてを小文字にすることを望みます。 –

+0

SQL文だけで行が返されるようにしてください。@stevoは、大文字小文字の区別が一貫しているか処理されているかを確認し、%または_ワイルドカードを適切に使用する必要もあります。いくつかのカーソル属性を出力して、カーソルが行を戻したかどうかを確認することもできます。カーソルを開いて行数を取得した後に 'dbms_output.put_line(c1%rowcount);'を追加するなど、 '' c1%found ''のブール値チェックだけでも可能です。 – Wolf

+0

@Preeti: ''% 'xyz% ';'のような父親が '' like'の主な機能を使いたくない理由を '' 'その父の名前が 'xyz'でなければならない場合は、' father like 'xyz'ではなく 'father = 'xyz''を試してみてください。 –

答えて

0

父親が '%xyz%'のような申請者からこの選択IDを試してください。私はあなたのような主な機能を使いたくないと思っているのをなぜ知っているのか分かりません。あなたはその父の名前をxyzにしたいと思っています。そして、father = 'xyz' '

関連する問題