sql >> Base de Datos >  >> RDS >> Oracle

problema con apex_application_temp_files

Debe seleccionar en la columna NAME en lugar de FILENAME . El primero es el identificador único (se parece a series_of_numbers\the_filename ) y es lo que contendrá el elemento de búsqueda de archivos, mientras que este último no tiene el prefijo.

Mira, tendrás que proporcionar más información de tu parte. Creé una página realmente simple para probar esto (apex.oracle.com).

P2_FILE es un elemento de exploración de archivos.

  • Tipo de almacenamiento:tabla APEX_APPLICATION_TEMP_FILES
  • Purgar archivo al final de la sesión

Creé un proceso de envío que no hace más que enumerar algunas cosas en la salida de depuración.

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;

Así que ejecuto la página, habilito la depuración, selecciono un archivo y presiono enviar. Todos los trabajos. Compruebe el registro de depuración (aceptar):

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

Entonces:¿qué es diferente en tu extremo? ¿Hiciste lo sugerido por Jeffrey y ejecutaste una depuración de la página? ¿Cuál es su "purga" establecida como? ¿Estás seguro de que no se encontraron datos al seleccionar el blob y no en tu procedimiento? ¿Ya comentaste tu llamada al procedimiento?