implementere plsql i java metode
Jeg har en metode i plsql der henter en csv fil fra basen og splitter den ud i en tabel med de rigtig værdier, denne metode vil jeg meget gerne kunne kalde i en metode i java så det er noget der sker automatisk.. nogen der ved hvordan ??Min sql:
CREATE OR REPLACE procedure split_upload_to_fakturalines(pUploadId in number) is -- udload = csv
wClob clob; -- ny clob variabel
wStr varchar2(4000);
wStartPos number:=1; -- sætter start pos til 1
wStr1 varchar2(1000); -- første streng
wStr2 varchar2(1000); -- anden streng
wStr3 varchar2(1000); -- tredje streng
wStr4 varchar2(1000); -- fjerde streng
begin
delete fakturalinier; -- starter med at slette alt i fakturalinier
select binaryfile into wClob from uploads where uploadid=pUploadId; --her kan man ændre pUploadId til at pege på filen?.
--
loop -- her klipper man strenge op ved at søge efter enter chr(13)||chr(10) og anden gang trækker man den tidligere streng fra så man kun har den nye.
-- den deler det op i delstrenge ved at søge efter det næste ;. rtrim er at den fjerner "" fra felterne.
wStr:=substr(wClob,wStartPos,instr(wClob, chr(13)||chr(10), wStartPos, 1)-wStartPos);
if ltrim(rtrim(wStr))!=';;;' and substr(wStr,1,6) != '"Kunde' then
wStr1:=substr(wStr,1,instr(wStr,';')-1);
wStr2:=substr(wStr,instr(wStr,';',1,1)+1,instr(wStr,';',1,2)-instr(wStr,';',1,1)-2);
wStr3:=substr(wStr,instr(wStr,';',1,2)+1,instr(wStr,';',1,3)-instr(wStr,';',1,2)-2);
wStr4:=substr(wStr,instr(wStr,';',1,3)+1);
insert into fakturalinier(kunde_nr,kunde_navn,reference,beløb)
values(rtrim(ltrim(wStr1,'"'),'"')
,rtrim(ltrim(wStr2,'"'),'"')
,rtrim(ltrim(wStr3,'"'),'"')
,rtrim(ltrim(replace(wStr4,'.',','),'"'),'"'));
end if;
wStartPos:=instr(wClob, chr(13)||chr(10), wStartpos+1, 1)+2;
exit when instr(wClob, chr(13)||chr(10), wStartpos+1, 1)=0;
end loop;
commit;
end;
mvh Henrik