0
데이터베이스에서 몇 개의 큰 웨이브 파일을 검색해야하며 작은 웨이브 파일 (약 5Mb)로 나눌 수 있습니다. 어떻게해야합니까? dbms_lob.read 프로 시저를 본 적이 있지만이 최대 파일 크기는 32KB입니다.split blob 파일
감사
procedure extract_blob(p_id in number, wrote_length in out number, chunk out blob) is
len_file binary_integer;
myblob blob;
myname varchar2(255);
buffer_length number := 32760;
begin
select file_wav_data, file_wav_name, dbms_lob.getlength(file_wav_data)
into myblob, myname, lun_file
from t_wav
where id = p_id;
if(len_file > wrote_length) then
dbms_lob.read(myblob,buffer_length,wrote_length+1,chunk);
wrote_length := wrote_length + buffer_length;
else wrote_length := -999; --EOF
end if;
end;
'dbms_lob.read'는 RAW를 반환하고 RAW는 32kB로 제한되므로 RAW가 올바른 형식이 아닐 수도 있습니다. 이 데이터로 무엇을하고 싶습니까? 데이터를 어딘가에 복사 하시겠습니까? 서버에? 클라이언트에? ... –
죄송합니다 당신을 위해 anwser 준비 시간은 없지만 당신에게 팁을 줄 것입니다. 32kb를 읽은 다음 파일 (utl_fiile.put_raw)에 쓰고, 다음에 32kb를 읽고, 파일에 쓰십시오. 당신이 5mbs를 쓰거나 blob을 끝낼 때까지 반복하십시오. 그러나 웨이브 파일에 특수한 파일 구조 (파일의 시작과 끝)가있어서 문제가 생길 수 있으므로 분할하는 것이 그리 쉽지는 않을 것입니다. 바이너리 분할 파일을 얻을 수 있습니다. –
@ Vincent. 웨이브 파일의 일부를 포함하는 출력 매개 변수로 BLOB가있는 저장 프로 시저를 개발하려고합니다. 편집을 참조하십시오. –