FND_LOBS est l'une des grandes et importantes tables d'Oracle Apps. Voyons différentes choses importantes à propos de cette table
Table des matières
- Qu'est-ce qui est stocké dans FND_LOBS ?
- Comment purger les entrées de FND_LOBS ?
- Comment trouver l'espace alloué dans les lobsegments par rapport à l'espace utilisé ?
- Comment trouver l'espace utilisé par chaque programme
- Comment changer la PCTVERSION
- Comment voir le contenu du LOB ?
- Comment télécharger le fichier joint à partir de fnd_lobs
Qu'est-ce qui est stocké dans FND_LOBS ?
FND_LOBS stocke des informations sur tous les LOB gérés par le gestionnaire de fichiers génériques (GFM). Chaque ligne comprend l'identificateur de fichier, le nom, le type de contenu et les données réelles. Chaque ligne comprend également les dates auxquelles le fichier a été téléchargé et sa date d'expiration, le nom et la balise du programme associé, ainsi que la langue et le jeu de caractères Oracle. Les données du fichier, qui sont un LOB binaire, sont stockées exactement telles qu'elles sont téléchargées à partir d'un navigateur client, ce qui signifie qu'aucun travail de traduction n'est requis lors d'un téléchargement pour le rendre compatible HTTP. Par conséquent, les téléchargements à partir de sources autres que le navigateur devront préparer le contenu de manière appropriée (par exemple, en séparant les lignes avec CRLF).
![](http://www.sqldat.com/article/uploadfiles/202205/2022051016072221.png)
Comment purger les entrées de FND_LOBS ?
Le programme simultané "Purger les données obsolètes du gestionnaire de fichiers génériques" est utilisé pour purger FND_LOBS, et il purgera les entrées en fonction du type
– les entrées pour l'aide de l'application (iHelp) – ne seront pas purgées
– les pièces jointes – sera purgé s'il a expiré
– exporte – sera purgé
L'expiration des pièces jointes doit être effectuée via l'application, et non la mise à jour manuelle du tableau.
Vous pouvez voir les entrées qui ont une date d'expiration par le nom_programme en cours d'exécution :
select program_name,count(*)
from FND_LOBS
where expiration_date is not NULL
group by program_name;
Les entrées sans date d'expiration ont pu être trouvées en cours d'exécution :
select program_name,count(*)
from FND_LOBS
where expiration_date is NULL
group by program_name;
Comment trouver l'espace alloué dans les lobsegments par rapport à l'espace utilisé ?
Pour savoir combien d'espace est réellement utilisé par les lobsegments, vous pouvez exécuter :
select sum(dbms_lob.getlength (FILE_DATA)) from FND_LOBS;
SUM(DBMS_LOB.GETLENGTH(FILE_DATA))
----------------------------------
57253782456
L'espace total alloué dans les extensions peut être trouvé en cours d'exécution :
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
Comment trouver l'espace utilisé par chaque programme
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
.
Comment changer la VERSION PCT
ALTER TABLE APPLSYS.FND_LOBS MODIFY LOB (FILE_DATA) ( PCTVERSION 0 );
Comment voir le contenu du 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; /
Comment télécharger le fichier joint à partir de fnd_lobs
- Obtenez le FILEID de la base de données pour le fichier LOB que vous souhaitez télécharger, par exemple :
select FILE_ID,FILE_NAME from FND_LOBS where FILE_ID=123599;
FILE_ID FILE_NAME
---------- -------------
1212 TEST.XLS
2. Exécutez la commande FNDGFU. Pour l'exemple de fichier ci-dessus :
FNDGFU apps/apps 0 Y DOWNLOAD=1212 TEST.XLS
Articles connexes
comment déplacer un segment lob :comment déplacer un segment lob d'un tablespace à un autre, comment récupérer de l'espace après une suppression majeure dans le segment lob, comment utiliser la commande de rétrécissement dans les segments LOB
Pièces jointes dans les applications Oracle :vérifier consultez cet article sur les pièces jointes dans Oracle Applications R12, comment elles sont stockées, les tables impliquées dans le processus et les requêtes
Audit Oracle EBS :comment configurer Oracle EBS Auditing, comment ajouter des tables dans le groupe d'audit, comment sélectionner audit, demande simultanée de mise à jour de la piste d'audit
Créer un utilisateur EBS à partir du backend :cet article explique comment créer un utilisateur EBS à partir du backend, comment attribuer la responsabilité de l'application à l'utilisateur créé