Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

problema com apex_application_temp_files


Você precisa selecionar na coluna NAME em vez de FILENAME . O primeiro é o identificador exclusivo (parece series_of_numbers\the_filename ) e é o que o item de navegação do arquivo conterá, enquanto o último está sem o prefixo.

Olha, você terá que fornecer mais informações do seu lado. Eu criei uma página muito simples para tentar isso (apex.oracle.com).

P2_FILE é um item de busca de arquivos.
  • Tipo de armazenamento:tabela APEX_APPLICATION_TEMP_FILES
  • Limpar arquivo em:fim da sessão

Eu criei um processo de envio que não faz nada além de listar algumas coisas na saída de depuração.
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;

Então eu corro a página, habilito a depuração, seleciono um arquivo e clico em enviar. Todas as obras. Verifique o log de depuração (aceitar):
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

Então:o que há de diferente no seu final? Você fez como sugerido por Jeffrey e executou um debug da página? Qual é o seu conjunto de "purga"? Tem certeza de que o no-data-found ocorre na seleção do blob e não no seu procedimento - você já comentou sua chamada de procedimento?