dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。
Oracle11gと.NET C#で開発をしている初心者です。

下記の様なInsertの構文を書きました。
結果、c_1にInsertするレコードが無かった場合、

out_val := 0;

としたいのですが、
その書き方が分かりません。

色々試したのですが、
出来ませんでした。

本当に初歩的な質問なんだと思うのですが、
ご教授頂きたく、宜しくお願い致します。

      記

create or replace
procedure dbInsD売上予測
(
out_valoutpls_integer
)
as
CURSOR c_1 is
select 注文NO,受注NO,売上日,品番,数量,登録日時,登録者
FROM D売上台帳 a
WHERE NOT EXISTS(SELECT * FROM D売上予測 b WHERE a.受注NO = b.受注NO);
begin
for r_emp in c_1 loop

if c_1%FOUND then
INSERT INTO D売上予測
(
注文NO,受注NO,売上日,品番,数量,登録日時,登録者
)
values( r_emp.注文NO,r_emp.受注NO,r_emp.売上日,
r_emp.品番,r_emp.数量,r_emp.登録日時,r_emp.登録者
)
;
end if;

end loop;

out_val := sql%rowcount;

end;

A 回答 (2件)

>for r_emp in c_1 loop


の前で、
out_val := 0;
として、
INSERT文の後で
out_val := out_val + 1 ;
とします。
    • good
    • 0
この回答へのお礼

お礼が遅くなりどうもすみません。
ご回答大変参考になりました。
有難うございました。

お礼日時:2011/02/08 11:16

loop中のinsert文の後で


out_val := out_val + sql%rowcount;
として件数を累積していけばいいのではないでしょうか。
その場合、
out_val := 0;
の初期化が必要になると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!