Oracle
 sql >> Base de données >  >> RDS >> Oracle

problème avec apex_application_temp_files

Vous devez sélectionner dans la colonne NAME au lieu de FILENAME . Le premier est l'identifiant unique (ressemble à series_of_numbers\the_filename ) et est ce que contiendra l'élément de navigation du fichier, tandis que ce dernier est sans le préfixe.

Écoutez, vous devrez fournir plus d'informations de votre côté. J'ai créé une page très simple pour essayer cela (apex.oracle.com).

P2_FILE est un élément de parcours de fichiers.

  • Type de stockage :table APEX_APPLICATION_TEMP_FILES
  • Purger le fichier à :la fin de la session

J'ai créé un processus de soumission qui ne fait rien de plus que répertorier certaines choses dans la sortie de débogage.

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;

J'exécute donc la page, active le débogage, sélectionne un fichier et clique sur Soumettre. Tout fonctionne. Vérifiez le journal de débogage (acceptez) :

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

Alors :qu'est-ce qui est différent de votre côté ? Avez-vous fait comme suggéré par Jeffrey et exécuté un débogage de la page ? Quel est votre ensemble de "purge" ? Êtes-vous sûr que l'absence de données trouvée se produit sur la sélection du blob et non dans votre procédure ? Avez-vous déjà commenté votre appel de procédure ?