Bạn cần chọn trên cột NAME
thay vì FILENAME
. Đầu tiên là số nhận dạng duy nhất (trông giống như series_of_numbers\the_filename
) và là mục duyệt tệp sẽ chứa, trong khi mục sau không có tiền tố.
Nhìn xem, bạn sẽ phải cung cấp thêm thông tin từ phía mình. Tôi đã tạo một trang thực sự đơn giản để thử điều này (apex.oracle.com).
P2_FILE
là một mục duyệt tệp.
- Loại lưu trữ:Bảng APEX_APPLICATION_TEMP_FILES
- Xóa tệp vào:Cuối phiên
Tôi đã tạo một quy trình khi gửi, không có gì khác hơn là liệt kê một số thứ trong đầu ra gỡ lỗi.
declare
l_blob blob;
begin
for r in (select * from apex_application_temp_files)
loop
apex_debug.message('name: %s - filename: %s', r.name, r.filename);
end loop;
apex_debug.message('P2_FILE: %s', :P2_FILE);
SELECT blob_content
INTO l_blob
FROM apex_application_temp_files
WHERE name = :P2_FILE;
apex_debug.message('blob length: %s', dbms_lob.getlength(l_blob));
end;
Vì vậy, tôi chạy trang, bật gỡ lỗi, chọn một tệp và nhấn gửi. Tất cả các công việc. Kiểm tra nhật ký gỡ lỗi (chấp nhận):
name: 39044609744029199463/README (2).md - filename: README (2).md
name: 39044529927808550681/README (1).md - filename: README (1).md
name: 39044569042020557797/README.md - filename: README.md
P2_FILE: 39044609744029199463/README (2).md
blob length: 1884
Vậy:cuối cùng của bạn có gì khác biệt? Bạn đã thực hiện theo đề xuất của Jeffrey và chạy gỡ lỗi trang chưa? Bộ "thanh trừng" của bạn là gì? Bạn có chắc chắn rằng không tìm thấy dữ liệu xảy ra trên lựa chọn của đốm màu chứ không phải trong thủ tục của bạn - bạn đã nhận xét về cuộc gọi thủ tục của mình chưa?