Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Dinge, die Sie über die FND_LOBS-Tabelle in Oracle Apps wissen müssen

FND_LOBS ist eine der großen und wichtigen Tabellen in Oracle Apps. Lassen Sie uns verschiedene wichtige Dinge über diese Tabelle sehen

Inhaltsverzeichnis

Was wird in FND_LOBS gespeichert?

FND_LOBS speichert Informationen über alle vom Generic File Manager (GFM) verwalteten LOBs. Jede Zeile enthält die Dateikennung, den Namen, den Inhaltstyp und die eigentlichen Daten. Jede Zeile enthält auch das Datum, an dem die Datei hochgeladen wurde und wann sie abläuft, den zugehörigen Programmnamen und das zugehörige Tag sowie die Sprache und den Oracle-Zeichensatz. Die Dateidaten, die ein binäres LOB sind, werden genau so gespeichert, wie sie von einem Client-Browser hochgeladen werden, was bedeutet, dass während eines Downloads keine Übersetzungsarbeit erforderlich ist, um sie HTTP-konform zu machen. Daher müssen Uploads aus Nicht-Browser-Quellen den Inhalt entsprechend aufbereiten (z. B. Trennzeilen mit CRLF).

Wie lösche ich Einträge aus FND_LOBS?

Das gleichzeitige Programm „Purge Obsolete Generic File Manager Data“ wird verwendet, um FND_LOBS zu löschen, und es löscht Einträge nach dem Typ
– Einträge für die Anwendungshilfe (iHelp) – werden nicht gelöscht
– Anhänge – wird gelöscht, wenn abgelaufen
– Exporte – wird gelöscht

Der Ablauf von Anhängen sollte über die Anwendung erfolgen und nicht manuell die Tabelle aktualisieren.

Einträge, die ein Ablaufdatum haben, können Sie am Programmnamen erkennen, der ausgeführt wird:

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

Einträge ohne Ablaufdatum konnten gefunden werden:

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

Wie finde ich den in den Lobsegmenten zugewiesenen Speicherplatz im Vergleich zum verwendeten Speicherplatz?

Um herauszufinden, wie viel Speicherplatz tatsächlich von den Lobsegmenten verwendet wird, können Sie Folgendes ausführen:

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

Der in den Extents zugewiesene Gesamtspeicherplatz kann folgendermaßen gefunden werden:

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

So finden Sie den Speicherplatz, der von jedem Programm verwendet wird

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
.

So ändern Sie die PCTVERSION

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

Wie kann ich den Inhalt des LOB sehen?

-- 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;
/

Anhangdatei von fnd_lobs herunterladen

  1. Holen Sie sich die FILEID aus der Datenbank für die LOB-Datei, die Sie herunterladen möchten, zum Beispiel:
select FILE_ID,FILE_NAME from FND_LOBS where FILE_ID=123599;
FILE_ID FILE_NAME
---------- -------------
1212 TEST.XLS

2. Führen Sie den FNDGFU-Befehl aus. Für Dateibeispiel oben:

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

Verwandte Artikel
Verschieben von Lob-Segmenten:Verschieben von Lob-Segmenten von einem Tablespace in einen anderen, Zurückgewinnen von Speicherplatz nach dem Löschen eines größeren Lob-Segments, Verwenden des Shrink-Befehls in LOB-Segmenten
Attachments in Oracle Applications:Check diesen Beitrag über Anhänge in Oracle-Anwendungen R12, wie sie gespeichert werden, am Prozess beteiligte Tabellen und Abfragen
Oracle EBS Auditing :Wie man Oracle EBS Auditing einrichtet, wie man Tabellen in Audit-Gruppen hinzufügt, wie man Spalten auswählt für Auditing, Audit-Trail-Aktualisierung gleichzeitige Anfrage
EBS-Benutzer vom Backend erstellen:In diesem Beitrag geht es darum, wie man EBS-Benutzer vom Backend erstellt und wie man dem erstellten Benutzer Anwendungsverantwortung zuweist