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

Cosas que debe saber sobre la tabla FND_LOBS en Oracle Apps

FND_LOBS es una de las tablas grandes e importantes en Oracle Apps. Veamos varias cosas importantes sobre esta mesa

Índice

  • ¿Qué se almacena en FND_LOBS?
  • ¿Cómo eliminar entradas de FND_LOBS?
  • ¿Cómo encontrar el espacio asignado en los segmentos lob frente al espacio utilizado?
  • Cómo encontrar el espacio utilizado por cada programa
  • Cómo cambiar la VERSIÓN DE PCT
  • ¿Cómo ver el contenido del LOB?
  • Cómo descargar archivos adjuntos desde fnd_lobs

¿Qué se almacena en FND_LOBS?

FND_LOBS almacena información sobre todos los LOB administrados por el Administrador de archivos genéricos (GFM). Cada fila incluye el identificador de archivo, el nombre, el tipo de contenido y los datos reales. Cada fila también incluye las fechas en que se cargó el archivo y cuándo caducará, el nombre y la etiqueta del programa asociado, y el idioma y el juego de caracteres de Oracle. Los datos del archivo, que es un LOB binario, se almacenan exactamente como se cargan desde el navegador de un cliente, lo que significa que no se requiere ningún trabajo de traducción durante una descarga para que sea compatible con HTTP. Por lo tanto, las cargas desde fuentes que no sean navegadores tendrán que preparar los contenidos adecuadamente (por ejemplo, separando líneas con CRLF).

¿Cómo purgar las entradas de FND_LOBS?

El programa concurrente "Purge Obsolete Generic File Manager Data" se utiliza para purgar FND_LOBS, y purgará las entradas según el tipo
– entradas para la Ayuda de la aplicación (iHelp) – no se purgarán
– archivos adjuntos – se eliminará si está vencido
– exportaciones – se eliminará

La caducidad de los archivos adjuntos debe realizarse a través de la aplicación y no actualizando manualmente la tabla.

Puede ver las entradas que tienen una fecha de caducidad por nombre_del_programa ejecutando:

select program_name,count(*)
from FND_LOBS
where expiration_date is not NULL
group by program_name;

Las entradas sin fecha de caducidad se pueden encontrar ejecutando:

select program_name,count(*)
from FND_LOBS
where expiration_date is NULL
group by program_name;

¿Cómo encontrar el espacio asignado en los segmentos lob frente al espacio utilizado?

Para averiguar cuánto espacio utilizan realmente los segmentos lob, puede ejecutar:

select sum(dbms_lob.getlength (FILE_DATA)) from FND_LOBS;
SUM(DBMS_LOB.GETLENGTH(FILE_DATA))
----------------------------------
57253782456

El espacio total asignado en las extensiones se puede encontrar ejecutando:

select sum(bytes), s.segment_name, s.segment_type
from dba_lobs l, dba_segments s
where s.segment_type = 'LOBSEGMENT'
and l.table_name = 'FND_LOBS'
and s.segment_name = l.segment_name
group by s.segment_name,s.segment_type;
SUM(BYTES) SEGMENT_NAME SEGMENT_TYPE
---------- --------------------------------- ------------------
525472547345 SYS_LOB0000057C00004$$ LOBSEGMENT

Cómo encontrar el espacio utilizado por cada programa

select
program_name,round(sum(dbms_lob.getlength (FILE_DATA))/1024/1024,0) "Size(M)"
from APPS.fnd_LOBS
where expiration_date is NULL
group by program_name order by 2 desc
PROGRAM_NAME Size(M)
-------------------------------- ----------
FNDATTCH 864
FND_HELP 280
export 7
HRMS_ADI 5
PERWSIMG 3
IBE 0
PER_P11D_gb_UK.pdf 0
.

Cómo cambiar la VERSIÓN PCT

ALTER TABLE APPLSYS.FND_LOBS MODIFY LOB (FILE_DATA) ( PCTVERSION 0 );

¿Cómo ver el contenido de la LOB?

-- Read from fnd_lobs a given file_id
set serveroutput on size 1000000;
declare
  my_lob BLOB;
  Buffer      RAW(255);
  Amount      BINARY_INTEGER := 255;
  Position    INTEGER := 1;
begin
   select file_data into my_lob
   from fnd_lobs
   where file_id = &enter_file_id;
 
   dbms_lob.open(my_lob, dbms_lob.lob_readonly);
   DBMS_OUTPUT.PUT_LINE('Start of data');

   loop
      DBMS_LOB.READ(my_lob, Amount, Position, Buffer);
      /* Process the buffer: */
      DBMS_OUTPUT.PUT_LINE(utl_raw.cast_to_varchar2(Buffer));
      Position := Position + Amount;
   end loop;

   dbms_lob.close(my_lob);
  EXCEPTION
    WHEN NO_DATA_FOUND THEN
      DBMS_OUTPUT.PUT_LINE('End of data');
end;
/

Cómo descargar archivos adjuntos desde fnd_lobs

  1. Obtenga el FILEID de la base de datos para el archivo LOB que desea descargar, por ejemplo:
select FILE_ID,FILE_NAME from FND_LOBS where FILE_ID=123599;
FILE_ID FILE_NAME
---------- -------------
1212 TEST.XLS

2. Ejecute el comando FNDGFU. Para el ejemplo de archivo anterior:

FNDGFU apps/apps 0 Y DOWNLOAD=1212 TEST.XLS

Artículos relacionados
cómo mover un segmento lob:cómo mover un segmento lob de un tablespace a otro, cómo reclamar espacio después de la eliminación principal en un segmento lob, cómo usar el comando de reducción en segmentos LOB
Archivos adjuntos en aplicaciones Oracle:Comprobar consulte esta publicación sobre archivos adjuntos en Oracle Applications R12, cómo se almacenan, tablas involucradas en el proceso y consultas
Auditoría de Oracle EBS:cómo configurar la auditoría de Oracle EBS, cómo agregar tablas en el grupo de auditoría, cómo seleccionar la columna para auditoría, solicitud simultánea de actualización de seguimiento de auditoría
Crear usuario de EBS desde el backend:esta publicación trata sobre cómo crear un usuario de EBS desde el backend, cómo asignar la responsabilidad de la aplicación al usuario creado