У меня есть следующий PL/SQL-блок для получения записей из типа записи, и я использую объект записи как array.It дает неправильное число или типы аргумента error где я инициализирую array.kindly дать мне письменное решение для инициализации объекта записи как массив.Как инициализировать объект записи как массив в plsql?
DECLARE
TYPE loc IS RECORD (
loc_id number(4),
str_add VARCHAR2(40),
p_code VARCHAR2(12),
city VARCHAR2(30),
st_pro VARCHAR2(25),
c_id CHAR(2),
Oper varchar2(1));
--names namesarray;
--loc_rec loc IS VARRAY(8);
type loc_rec IS VARRAY(8) OF loc;
total number(4);
tot number(3);
loc_id1 number(4);
i number(2);
begin
i:=1;
loc_rec(1).loc_id:=1;
loc_rec(1).str_add:='chikhli';
loc_rec(1).p_code:='396521';
loc_rec(1).city:='chikhli';
loc_rec(1).st_pro:='Gujarat';
loc_rec(1).c_id:='G1';
loc_rec(1).Oper:='I';
loc_rec(2).loc_id:=2;
loc_rec(2).str_add:='chikhli';
loc_rec(2).p_code:='396521';
loc_rec(2).city:='chikhli';
loc_rec(2).st_pro:='Gujarat';
loc_rec(2).c_id:='G1';
loc_rec(2).Oper:='U';
loc_rec(3).loc_id:=3;
loc_rec(3).str_add:='chikhli';
loc_rec(3).p_code:='396521';
loc_rec(3).city:='chikhli';
loc_rec(3).st_pro:='Gujarat';
loc_rec(3).c_id:='G1';
loc_rec(3).Oper:='D';
--names := --namesarray(loc_rec.loc_id,loc_rec.str_add,loc_rec.p_code,
--loc_rec.city,loc_rec.st_pro,loc_rec.c_id,loc_rec.Oper);
LOOP
--total := names.count;
if loc_rec(i).Oper='I' then
insert into locations values(loc_rec(i).loc_id,
loc_rec(i).str_add,
loc_rec(i).p_code,
loc_rec(i).city,
loc_rec(i).st_pro,
loc_rec(i).c_id
);
dbms_output.put_line('Record Inserted Successfully');
elsif loc_rec(i).Oper='D' then
delete from locations where location_id=loc_rec(i).loc_id;
dbms_output.put_line('Record deleted Successfully');
if(sql%NOTFOUND) then
dbms_output.put_line('Input location ID Not Found');
end if;
elsif loc_rec(i).Oper='U' then
update locations
set
street_address=loc_rec(i).str_add,
postal_code=loc_rec(i).p_code,
city=loc_rec(i).city,
state_province=loc_rec(i).st_pro,
country_id=loc_rec(i).c_id
where location_id=loc_rec(i).loc_id;
dbms_outt.put_line('Record Updated Successfully');
if(sql%NOTFOUND) then
insert into locations values(loc_rec(i).loc_id,
loc_rec(i).str_add,
loc_rec(i).p_code,
loc_rec(i).city,
loc_rec(i).st_pro,
loc_rec(i).c_id
);
end if;
else
dbms_output.put_line('Kindly give proper Input: I:insert U:update D:delete');
end if;
commit;
i:=i+1;
END LOOP;
end;
/
, какая линия являются у gewtting ошибки? – Avi
строка номер 21, где я написал loc_rec (1) .loc_id: = 1; –