0
我正在寫下面的代碼。將過程IN參數與cusrsor值進行比較。將過程參數與光標值進行比較
create or replace procedure dashboard_addtion(customer_name IN varchar2)
IS
num number:=0;
CURSOR cname_cur
IS Select customername from customer_master;
cname varchar2(300);
begin
for cname in cname_cur loop
if upper(cname.customername)!=upper(customer_name) then
num:=num+1;
end if;
end loop;
if num != 0 then
insert into customer_master select max(customerid) + 1, customer_name
from customer_master;
end if;
end;
它一直在執行它的INSERT語句。
標題似乎與問題沒有關係,但我不完全確定問題是什麼。您正在循環所有現有記錄並計算那些與您的參數不匹配的記錄;如果*任何*不匹配,那麼你插入一個新的記錄。只有當匹配參數的參數不存在時,才真的試圖插入新記錄嗎?你不需要光標。 –
@AlexPoole:是的亞歷克斯我想插入新紀錄,只有當它已經不存在。 – user2523846
@AlexPoole:是的,我知道它可能沒有使用光標。但是我只想清晰地瞭解遊標如何工作,請建議TY :) – user2523846