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カーソルは次のコードの出力なし
別の行を追加することもできます。dbms_output.put_line(' inside ');既存のdbms_outputの下に、行を戻すかどうかを確認します。そうでなければ、私はxyzのような条件の父親に会う行はないと示唆しています。おそらく、%xyz%のような下位(父)をワイルドカードとして使用し、父のフィールドのすべてを小文字にすることを望みます。 –
SQL文だけで行が返されるようにしてください。@stevoは、大文字小文字の区別が一貫しているか処理されているかを確認し、%または_ワイルドカードを適切に使用する必要もあります。いくつかのカーソル属性を出力して、カーソルが行を戻したかどうかを確認することもできます。カーソルを開いて行数を取得した後に 'dbms_output.put_line(c1%rowcount);'を追加するなど、 '' c1%found ''のブール値チェックだけでも可能です。 – Wolf
@Preeti: ''% 'xyz% ';'のような父親が '' like'の主な機能を使いたくない理由を '' 'その父の名前が 'xyz'でなければならない場合は、' father like 'xyz'ではなく 'father = 'xyz''を試してみてください。 –