2015-06-30 21 views
1

我正嘗試使用for循環將值插入到表中。我不明白爲什麼它不工作。我是一名初學者。任何幫助,將不勝感激。在PL/SQL中插入multipe值

create or replace procedure valueinput 
as i number; 
begin 
for i in 1..10 
    loop 
    man_id number:=&Manager_Id; 
    man_fname varchar2(100):=&First_Name; 
    man_lname varchar2(100):=&Last_Name; 
    emp_id number:=&Employee_ID_Managed; 
    insert into managerinfo 
    values (man_id,man_fname,man_lname,emp_id); 
    i:=i+1; 
    end loop; 
end; 
+0

是什麼值通在我??? –

+0

爲什麼你手動增加循環(i:= i + 1;)? 你得到的錯誤信息是什麼? 可能你有一個自動增量字段? – TinyOS

+0

你是否期待它在每個循環中提示你管理者ID,名字等? –

回答

1

你必須在你的PL/SQL塊的聲明部分聲明變量,現在你正在試圖做它的執行部分。

此外,對於PL/SQL FOR..IN循環,您不需要聲明或增加索引。

嘗試像這個 -

create or replace procedure valueinput 
as 
man_id number; 
man_fname varchar2(100); 
man_lname varchar2(100); 
emp_id number; 
begin 
for i in 1..10 
    loop 
    man_id :=&Manager_Id; 
    man_fname :=&First_Name; 
    man_lname :=&Last_Name; 
    emp_id :=&Employee_ID_Managed; 

    insert into managerinfo 
    values (man_id,man_fname,man_lname,emp_id); 
    end loop; 
end; 

這也將是聲明你的變量類型一樣爲你插入到表列最佳實踐。

對於示例 -

man_id managerinfo.manager_id%TYPE;