If I am referencing an entire table with a cursor. Can I use the insert statement based on conditions in other tables multiple times? For example:
V_Name Emp.Name%type;
V_E_Number Emp.Number%type;
V_Location Emp.Location%type;
V_City Emp.City%type;
V_P_ID Emp.P_ID%type;
V_State_Code Emp.State_Code%type;
Cursor C1 is Select emp.name, emp.number, emp.Location, emp.City, emp.P_ID, emp.State_Code
From Employee Emp, Former_Employee Femp
Where Emp.Number = Femp.Number
And State_Code = '4';
Begin
Open C1;
Loop
Fetch C1 Into V_Name, V_E_Number, V_Location, V_City, V_P_ID, V_State_Code;
EXIT WHEN C1%NOTFOUND;
IF New_Emp.P_ID != V_P_ID
Then Insert Into New_Emp
Values (V_Name, V_E_Number, V_Location, V_City, V_P_ID, V_State_Code);
IF New_Emp.P_ID = V_P_ID,
New_Emp.State_Code = V_State_Code
Then Insert Into Emp_Archive
VALUES (V_Name, V_E_Number, V_Location, V_City, V_P_ID, V_State_Code);
Else Do Nothing;
End If;
End Loop;
Close C1;
End;
/
Then Can I open the cursor again and use another If Statement to populate a different table with different conditions?
You can open a cursor, fetch from the cursor, close the cursor, and then re-open it later. You may get different data when you open the cursor again because the data in the underlying table may have changed. However, looking at your code, there seems to be no need to declare a cursor in the first place– you can simply code two
INSERTstatements (assuming that thenew_emprecord that your code refers to but does not declare is valid)You could simplify that further by doing a single INSERT ALL