Koliko je iznema i verzija ovog bilo ne znam ni da li sam pravi poslao. Ako neko zna sta sadrzi UTL_FILE.GET_LINE(utl_file.file_type, string) kada je string prazna linija. Da li je to null ili "" ili nesto trece probao sam i sa jednim i sa drugim i neca pa to ti je.
Code:
declare
f utl_file.file_type;
a varchar2(100);
b varchar2(100);
otvoren boolean;
kraj boolean;
j number(4):=1;
prazna boolean;
brojac number(3);
termin varchar2(30);
znacenje2 varchar2(1000):='';
pomocni varchar2(2000):='';
pomocni2 varchar2(1000):='';
--duzina number(3);
begin
j:=1;
kraj:=false;
otvoren:=utl_file.is_open(f);
if otvoren
then
null;
else
f:=utl_file.fopen('D:\Recnik\', 'a.txt', 'R');
end if;
while not(kraj) loop
utl_file.get_line(f, a);
b:=trim(' ' from a);
if b is null
then
insert into proba values(j, termin, znacenje2);
utl_file.get_line(f, a);
b:=trim(' ' from a);
termin:=substr(b, 1, instr(b, '-', 1, 1));
znacenje2:=substr(b, instr(b, '-', 1, 1), length(b));
j:=j+1;
insert into proba values(j, termin, znacenje2);
else
select znacenje into pomocni from proba where id=j;
pomocni2:=trim(' ' from pomocni);
pomocni:=pomocni2||' '||b;
delete from proba where id=j;
insert into proba values (j, termin, pomocni);
end if;
end loop;
exception
when no_data_found then
kraj:=true;
utl_file.fclose(f);
end;
declare
f utl_file.file_type;
a varchar2(100);
b varchar2(100);
otvoren boolean;
kraj boolean;
j number(4):=1;
prazna boolean;
brojac number(3);
termin varchar2(30);
znacenje2 varchar2(1000):='';
pomocni varchar2(2000):='';
pomocni2 varchar2(1000):='';
--duzina number(3);
begin
j:=1;
kraj:=false;
otvoren:=utl_file.is_open(f);
if otvoren
then
null;
else
f:=utl_file.fopen('D:\Recnik\', 'a.txt', 'R');
end if;
while not(kraj) loop
utl_file.get_line(f, a);
b:=trim(' ' from a);
if b is null
then
insert into proba values(j, termin, znacenje2);
utl_file.get_line(f, a);
b:=trim(' ' from a);
termin:=substr(b, 1, instr(b, '-', 1, 1));
znacenje2:=substr(b, instr(b, '-', 1, 1), length(b));
j:=j+1;
insert into proba values(j, termin, znacenje2);
else
select znacenje into pomocni from proba where id=j;
pomocni2:=trim(' ' from pomocni);
pomocni:=pomocni2||' '||b;
delete from proba where id=j;
insert into proba values (j, termin, pomocni);
end if;
end loop;
exception
when no_data_found then
kraj:=true;
utl_file.fclose(f);
end;
Ako ce vam biti od pomoci, evo, vam jos jedne procedure koja samo pronalazi linije u kojima ima termina i stavlja ih u jednu kolonu tabele a deo znacenja u drugu, znaci to radi e sada preko toga treba da se uzme sledeca linija da se izvrsi konkatenacija do celog znacenja. Nadam se da sam bio jasan a izvinjavam se na ovolikoj duzini poruke.
Code:
declare
f utl_file.file_type;
a varchar2(100);
b varchar2(100);
otvoren boolean;
kraj boolean;
j number(4);
prazna boolean;
brojac number(3);
begin
j:=1;
kraj:=false;
otvoren:=utl_file.is_open(f);
if otvoren
then
null;
else
f:=utl_file.fopen('D:\Recnik\', 'a.txt', 'R');
end if;
while not(kraj) loop
utl_file.get_line(f, a);
b:=trim(' ' from a);
if b is null
then
utl_file.get_line(f, a);
b:=trim(' ' from a);
insert into tekst values(j, b);
b:=null;
j:=j+1;
else
insert into tekst values(j, b);
b:=null;
j:=j+1;
--prazna:=false;
end if;
end loop;
exception
when no_data_found then
kraj:=true;
utl_file.fclose(f);
end;
declare
f utl_file.file_type;
a varchar2(100);
b varchar2(100);
otvoren boolean;
kraj boolean;
j number(4);
prazna boolean;
brojac number(3);
begin
j:=1;
kraj:=false;
otvoren:=utl_file.is_open(f);
if otvoren
then
null;
else
f:=utl_file.fopen('D:\Recnik\', 'a.txt', 'R');
end if;
while not(kraj) loop
utl_file.get_line(f, a);
b:=trim(' ' from a);
if b is null
then
utl_file.get_line(f, a);
b:=trim(' ' from a);
insert into tekst values(j, b);
b:=null;
j:=j+1;
else
insert into tekst values(j, b);
b:=null;
j:=j+1;
--prazna:=false;
end if;
end loop;
exception
when no_data_found then
kraj:=true;
utl_file.fclose(f);
end;