- ベストアンサー
[Oracle9i]PL/SQLでFETCHしても、%FOUND=TRUEにならない
簡単なことだと思うのですが、はまってしまったので質問させてください。 以下のようなコードがあります。PL/SQLで書いてます。 SELECTした内容をFETCHして、IF文の%FOUNDで処理内容を変えているのですが、%FOUND=FALSEで必ず返ってきています。SELECT文自体でデータはひっぱって来ている(別で流しました)ようなので、理由が全然わからずまいってます。 -------------------------------------------------- FUNCTION get_siten_cd(siten_cd varchar2) RETURN varchar2 IS ret_siten_cd varchar(4); --4桁支店コード /*カーソル定義*/ CURSOR cs is SELECT SITEN_CD FROM MEI1.SITEN_MST WHERE SITEN_CD3 = siten_cd; /**カーソルに基づくレコードの定義**/ rs cs%ROWTYPE; BEGIN OPEN cs; FETCH cs INTO rs; IF cs%FOUND THEN --データが存在する場合 ret_siten_cd := rs.SITEN_CD; ELSE --データが存在しない場合 ret_siten_cd := NULL; END IF; CLOSE cs; RETURN ret_siten_cd; END; -------------------------------------------------- よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (2)
- taka451213
- ベストアンサー率47% (436/922)
- nandarou-1011
- ベストアンサー率50% (65/128)
お礼
正解ですw。 ってか、ダメなんですねこれ。知りませんでした。 なんたか自分で解決しました。 皆さん回答ありがとうございましたっ!