sql >> データベース >  >> RDS >> Oracle

OracleAppsのFND_LOBSテーブルについて知っておくべきこと

    FND_LOBSは、OracleAppsの重要で重要なテーブルの1つです。このテーブルに関するさまざまな重要なことを見てみましょう

    目次

    FND_LOBSには何が格納されていますか?

    FND_LOBSは、Generic File Manager(GFM)によって管理されるすべてのLOBに関する情報を保管します。各行には、ファイルID、名前、コンテンツタイプ、および実際のデータが含まれます。各行には、ファイルがアップロードされた日付と有効期限、関連するプログラム名とタグ、言語とOracle文字セットも含まれます。バイナリLOBであるファイルデータは、クライアントブラウザからアップロードされたとおりに保存されます。つまり、ダウンロード中にHTTPに準拠するために、翻訳作業は必要ありません。したがって、ブラウザ以外のソースからのアップロードでは、コンテンツを適切に準備する必要があります(たとえば、CRLFで行を区切る)。

    FND_LOBSからエントリを削除するにはどうすればよいですか?

    並行プログラム「PurgeObsoleteGenericFile Manager Data」は、FND_LOBSをパージするために使用され、タイプに応じてエントリをパージします
    –アプリケーションヘルプ(iHelp)のエントリ–はパージされません
    –添付ファイル–期限切れの場合は削除されます
    –エクスポート–削除されます

    添付ファイルの有効期限は、テーブルを手動で更新するのではなく、アプリケーションを介して行う必要があります。

    実行中のprogram_nameによって有効期限のあるエントリを確認できます:

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

    有効期限のないエントリが実行されていることがわかりました:

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

    lobsegmentsに割り当てられたスペースと使用済みスペースを見つける方法は?

    実行できるlobsegmentsによって実際に使用されているスペースを見つけるには:

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

    エクステントに割り当てられた合計スペースは、実行中です。

    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

    各プログラムで使用されているスペースを見つける方法

    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
    .

    PCTVERSIONを変更する方法

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

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

    fnd_lobsから添付ファイルをダウンロードする方法

    1. ダウンロードするLOBファイルのデータベースからFILEIDを取得します。例:
    select FILE_ID,FILE_NAME from FND_LOBS where FILE_ID=123599;
    FILE_ID FILE_NAME
    ---------- -------------
    1212 TEST.XLS

    2.FNDGFUコマンドを実行します。上記のファイル例の場合:

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

    関連記事
    lobセグメントの移動方法:lobセグメントをあるテーブルスペースから別のテーブルスペースに移動する方法、lobセグメントでメジャーが削除された後にスペースを再利用する方法、LOBセグメントでshrinkコマンドを使用する方法
    Oracleアプリケーションの添付ファイル:チェックOracle Applications R12の添付ファイル、それらの格納方法、プロセスおよびクエリに関係するテーブルに関するこの投稿を参照してください。
    Oracle EBS監査:Oracle EBS監査の設定方法、監査グループにテーブルを追加する方法、次の列を選択する方法監査、監査証跡更新同時リクエスト
    バックエンドからEBSユーザーを作成する:この投稿では、バックエンドからEBSユーザーを作成する方法、作成したユーザーにアプリケーションの責任を割り当てる方法について説明します


    1. Oracleのシーケンスの値をリセットする必要があります

    2. AzureSQLマネージドインスタンスのパフォーマンスに関する考慮事項

    3. psycopg2を使用してPostgresのSQLLIKE値をエスケープします

    4. SQLINSERTINTOステートメント