U moet in kolom NAME
. selecteren in plaats van FILENAME
. De eerste is de unieke identificatie (ziet eruit als series_of_numbers\the_filename
) en is wat het bestand browse-item zal bevatten, terwijl de laatste zonder het voorvoegsel is.
Kijk, je zult meer informatie van jouw kant moeten geven. Ik heb een heel eenvoudige pagina gemaakt om dit te proberen (apex.oracle.com).
P2_FILE
is een bestand-browse item.
- Opslagtype:tabel APEX_APPLICATION_TEMP_FILES
- Bestand opschonen bij:einde van sessie
Ik heb een on-submit-proces gemaakt dat niets anders doet dan enkele dingen in de debug-uitvoer opsommen.
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;
Dus ik voer de pagina uit, schakel foutopsporing in, selecteer een bestand en druk op verzenden. Alle werken. Controleer het foutopsporingslogboek (accepteer):
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
Dus:wat is er anders aan jouw kant? Heb je gedaan zoals voorgesteld door Jeffrey en een debug van de pagina uitgevoerd? Wat is je "purge"-set? Weet je zeker dat de no-data-found optreedt bij het selecteren van de blob en niet in je procedure - heb je al commentaar gegeven op je procedure-aanroep?