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

Coisas que você deve saber sobre a tabela FND_LOBS no Oracle Apps


FND_LOBS é uma das grandes e importantes tabelas do Oracle Apps. Vamos ver várias coisas importantes sobre esta tabela

Índice

O que é armazenado em FND_LOBS?


FND_LOBS armazena informações sobre todos os LOBs gerenciados pelo Generic File Manager (GFM). Cada linha inclui o identificador de arquivo, nome, tipo de conteúdo e dados reais. Cada linha também inclui as datas em que o arquivo foi carregado e quando ele expirará, o nome e a tag do programa associado e o idioma e o conjunto de caracteres Oracle. Os dados do arquivo, que é um LOB binário, são armazenados exatamente como são carregados de um navegador cliente, o que significa que nenhum trabalho de tradução é necessário durante um download para torná-lo compatível com HTTP. Portanto, os uploads de fontes que não sejam do navegador terão que preparar o conteúdo adequadamente (por exemplo, separando linhas com CRLF).

Como limpar entradas de FND_LOBS?


O programa concorrente “Purge Obsolete Generic File Manager Data” é usado para limpar FND_LOBS, e irá limpar entradas de acordo com o tipo
– entradas para a Ajuda do Aplicativo (iHelp) – não serão limpas
– anexos – será eliminado se expirado
– exportações – será eliminado

A expiração dos anexos deve ser feita via aplicativo, e não atualizando manualmente a tabela.

Você pode ver as entradas que têm uma data de expiração pelo nome_do_programa em execução:
select program_name,count(*)
from FND_LOBS
where expiration_date is not NULL
group by program_name;

As entradas sem data de expiração podem ser encontradas em execução:
select program_name,count(*)
from FND_LOBS
where expiration_date is NULL
group by program_name;

Como encontrar o espaço alocado nos segmentos de lobs versus o espaço usado?


Para descobrir quanto espaço é realmente usado pelos lobsegments, você pode executar:
select sum(dbms_lob.getlength (FILE_DATA)) from FND_LOBS;
SUM(DBMS_LOB.GETLENGTH(FILE_DATA))
----------------------------------
57253782456

O espaço total alocado nas extensões pode ser encontrado em execução:
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

Como encontrar o espaço usado 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
.

Como alterar a PCTVERSION


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

Como ver o conteúdo do 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;
/

Como baixar o arquivo de anexo do fnd_lobs

  1. Obtenha o FILEID do banco de dados para o arquivo LOB que você deseja baixar, por exemplo:
select FILE_ID,FILE_NAME from FND_LOBS where FILE_ID=123599;
FILE_ID FILE_NAME
---------- -------------
1212 TEST.XLS

2. Execute o comando FNDGFU. Para o exemplo de arquivo acima:
FNDGFU apps/apps 0 Y DOWNLOAD=1212 TEST.XLS

Artigos relacionados
como mover o segmento lob :como mover o segmento lob de um tablespace para outro, como recuperar espaço após a exclusão principal no segmento lob, como usar o comando shrink em segmentos LOB
Anexos em aplicativos Oracle:Verifique saiu este post sobre Anexos em Oracle Applications R12, como são armazenados, tabelas envolvidas no processo e consultas
Auditoria Oracle EBS :Como configurar o Oracle EBS Auditing, como adicionar tabelas no grupo de auditoria, como selecionar coluna para auditoria, solicitação simultânea de atualização da trilha de auditoria
Criar usuário do EBS a partir do back-end :Este post é sobre como criar usuário do EBS a partir do back-end, como atribuir responsabilidade do aplicativo ao usuário criado