Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Problem mit apex_application_temp_files

Sie müssen die Spalte NAME auswählen statt FILENAME . Ersteres ist die eindeutige Kennung (sieht aus wie series_of_numbers\the_filename ) und ist, was das Dateisuchelement enthalten wird, während letzteres ohne das Präfix ist.

Sehen Sie, Sie müssen von Ihrer Seite mehr Informationen bereitstellen. Ich habe eine wirklich einfache Seite erstellt, um dies zu versuchen (apex.oracle.com).

P2_FILE ist ein Element zum Durchsuchen von Dateien.

  • Speichertyp:Tabelle APEX_APPLICATION_TEMP_FILES
  • Datei löschen bei:Sitzungsende

Ich habe einen On-Submit-Prozess erstellt, der nichts anderes tut, als einige Dinge in der Debug-Ausgabe aufzulisten.

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;

Also führe ich die Seite aus, aktiviere Debug, wähle eine Datei aus und drücke auf Senden. Alles funktioniert. Überprüfen Sie das Debug-Protokoll (akzeptieren):

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

Also:Was ist bei Ihnen anders? Haben Sie wie von Jeffrey vorgeschlagen vorgegangen und die Seite debuggen lassen? Wie ist dein "Purge"-Set? Sind Sie sicher, dass „keine Daten gefunden“ beim Auswählen des Blobs auftritt und nicht in Ihrer Prozedur – haben Sie Ihren Prozeduraufruf schon auskommentiert?