2016-07-07 22 views
1

私はCREXページ、APEX(バージョン5)のフォームを持ち、対応するテーブルには2つのCLOBフィールドがあります。私は同じページの両方のフィールドを変更する必要があります。私は非常に普及していると思われる知っている解決策、コレクションAPEX_COLLECTIONを使用する解決策、およびCLOBフィールドをロードし、変更された値を更新するプロセスを認識しています。ORACLE APEX 5のページで複数のCLOBフィールドを使用する方法

/** PL/SQL for loading the CLOB field */ 
declare 
l_clob clob:= empty_clob(); 

begin 
    if apex_collection.collection_exists(p_collection_name=>'CLOB_CONTENT') then apex_collection.delete_collection(p_collection_name=>'CLOB_CONTENT'); 
    end if; 
apex_collection.create_or_truncate_collection(p_collection_name=>'CLOB_CONTENT'); 
    dbms_lob.createtemporary(l_clob, false, dbms_lob.SESSION); 

    select DS_CONCLUSAO 
    into l_clob 
    from CR_RELATORIO  
    where ID_RELATORIO = :P15_ID_RELATORIO; 

    apex_collection.add_member(p_collection_name => 'CLOB_CONTENT',p_clob001 => l_clob); 
end; 

/** Javascript Functions for loading and setting the field on the page */ 

<script type="text/javascript"> 

function clob_set(campo, operacao){ 
     var clob_ob = new apex.ajax.clob( 
      function(){ 
       var rs = p.readyState 
       if(rs == 1||rs == 2||rs == 3){ 
        $x_Show('AjaxLoading'); 
       }else if(rs == 4){ 
        $s(campo,p.responseText); 
        $x_Hide('AjaxLoading'); 
        apex.submit(operacao); 
       }else{return false;} 
      } 
     ); 

     if (!apex.item(campo).isEmpty()) { 
      clob_ob._set($v(campo)); 
     } 
    } 

    function clob_get(campo){ 
     if ($v(campo) != null && $v(campo) != '') { 
      var clob_ob = new apex.ajax.clob( 
      function(){ 
       var rs = p.readyState 
       if(rs == 1||rs == 2||rs == 3){ 
        $x_Show('AjaxLoading'); 
       }else if(rs == 4){ 
        $s(campo,p.responseText); 
        $x_Hide('AjaxLoading'); 
       }else{return false;} 
      } 
     ); 
      clob_ob._get(); 
     } 
    } 


</script> 

- 私、このソリューションを使用しようとしているが、問題がある:そのコレクションは、CLOBフィールドに一つだけのスペースを持っている、と私はDB上の2つのCLOBフィールドのための2つ(またはそれ以上)のスペースが必要テーブル

別の名前の同じページに2つの異なるAPEX_COLLECTIONSを作成しようとしましたが、動作しません。

答えて

1

APEX_COLLECTIONは、セッションが期限切れになった後に自動的にパージするテーブルの便利なラッパーです。

あなたのケースでは、キーの一部としてSESSION_IDを使用して独自のテーブルを作成し、独自のパージプロセスを実装します。

+0

解決策を使用して、同じページで2つ以上のCLOBファイルをサポートするにはどうすればよいですか? –

+0

あなたは今何を止めていますか?あなたの質問は、コレクション内の1つのクローブの制限に関するものでした。独自の表を作成する場合は、複数のCLOBを作成できます。 –

+0

私はテーブルを持っています。コレクションを使用して、2つのCLOBフィールドを表からロード/挿入します。コレクションは1つのCLOBフィールドしかサポートしていないので、ここでは問題があります。 2つのCLOBフィールドを持つ別のテーブルの作成がどのように役立つかはわかりません。 –

関連する問題