v_upl_blob BLOB;
vstart Number:=1;
bytelen Number:=32000;
len Number;
my_vr Raw (32000);
x Number;
l_output Utl_file.file_type;
erout varchar2 (1000);
BEGIN
CHỌN blob_content
VÀO v_upl_blob
TỪ wwv_flow_files
WHERE name =:P25_FB;
-:p25_fb là mục duyệt tệp trong trang
LEN:=Dbms_lob.getlength (V_UPL_BLOB);
l_output:=Utl_File.fopen ('MY_FILES',:P25_FB, 'wb', 32760);
vstart:=1;
bytelen:=32000;
IF len <32760
Then
Utl_File.put_raw (l_output, V_UPL_BLOB);
Utl_File.fflush (l_output);
Khác - viết thành từng đoạn
vstart:=1;
WHILE vstart
LOOP
Dbms_lob.Read (V_UPL_BLOB, bytelen, vstart, my_vr);
Utl_File.put_raw (l_output, my_vr);
Utl_File.fflush (l_output);
- đặt vị trí bắt đầu cho lần cắt tiếp theo
vstart:=vstart + bytelen;
- đặt vị trí kết thúc nếu nhỏ hơn 32000 byte
x:=x - bytelen;
IF x <32000
Thì
bytelen:=x;
KẾT THÚC IF;
KẾT THÚC LOOP;
KẾT THÚC IF;
Utl_File.fclose (l_output);
XÓA TỪ wwv_flow_files
WHERE name =:P25_FB;
COMMIT;
--- gọi thủ tục cơ sở dữ liệu tùy chỉnh của bạn để nhập ...
yourcustomprocedure (:P25_FB);
NGOẠI LỆ Khi Người khác
Sau đó
IF Utl_File.is_Open (l_output) Sau đó
Utl_File.fclose (L_OUTPUT);
END IF;
raise;
END;
-
Có giới hạn lồng cho các truy vấn con tương quan trong một số phiên bản của Oracle không?
-
Hàm NEXT_DAY () trong Oracle
-
Làm thế nào để ghi lại một cơ sở dữ liệu
-
SQL, trên dòng thác xóa và trên dòng thác cập nhật
-
Hibernate ánh xạ một kiểu dữ liệu boolean thành gì khi sử dụng cơ sở dữ liệu Oracle theo mặc định?