2016-08-19 39 views
0

ORACLE APEXアプリで問題が発生しました。アップロードされた.zipファイルを一部の機能にパラメータとして送信するファイルアップロードメカニズムが必要です(この機能はうまく機能し、DBから手作業でテストしました) 。問題は、プロセスで「apex_application_temp_files」からアップロードされたファイルを選択しようとすると、「NO DATA FOUND」例外がスローされますが、IDとFILENAMESを選択するアプリケーションにレポートを追加すると、起こっている? これは些細な問題だと申し訳ありませんが、私はAPEX開発でかなり新しいです。issue with apex_application_temp_files

プロセス:

declare 
    l_blob blob; 
begin 
    SELECT blob_content 
     INTO l_blob 
     FROM apex_application_temp_files 
     WHERE NAME = :P6_FILE; 
    --INSTANTLY SET :G_TEST_ID FOR REPORTS 
    :G_TEST_ID := file_management.unwrap_zip(ab_zipped_blob => l_blob); 
end; 
+0

おそらく値を記録し、実際にファイル名に設定されているかどうかを確認してください。 'apex_debug.message(:P6_FILE);をそこに追加してください。 –

+0

あなたはどの頂点バージョンですか? – Typo

+0

Apexのバージョンは5.0.2.00.07 – Silverrook

答えて

2

あなたは、列NAME代わりのFILENAMEに選択する必要があります。前者はユニークな識別子(series_of_numbers\the_filenameのように見えます)で、ファイルの参照項目にはプレフィックスが付きません。


ご覧のとおり、詳細情報を提供する必要があります。私はこれを試す本当に単純なページを作成しました(apex.oracle.com)。

P2_FILEは、ファイルを参照する項目です。

  • ストレージタイプ:で表APEX_APPLICATION_TEMP_FILES
  • パージファイル:セッション
  • の終わり

私は、デバッグ出力のいくつかのリストよりも何もしないで提出プロセスを作成しました。

declare 
    l_blob blob; 
begin 
    for r in (select * from apex_application_temp_files) 
    loop 
    apex_debug.message('name: %s - filename: %s', r.name, r.filename); 
    end loop; 

    apex_debug.message('P2_FILE: %s', :P2_FILE); 

    SELECT blob_content 
     INTO l_blob 
     FROM apex_application_temp_files 
     WHERE name = :P2_FILE; 

    apex_debug.message('blob length: %s', dbms_lob.getlength(l_blob)); 
end; 

私はページを実行してデバッグを有効にし、ファイルを選択してサブミットします。すべての作品。デバッグログを確認してください(受け入れます):

name: 39044609744029199463/README (2).md - filename: README (2).md 
name: 39044529927808550681/README (1).md - filename: README (1).md 
name: 39044569042020557797/README.md - filename: README.md 
P2_FILE: 39044609744029199463/README (2).md 
blob length: 1884 

あなたの最後には何が違うのですか? Jeffreyが提案したようにして、ページのデバッグを実行しましたか?あなたの "浄化"は何と設定されていますか?あなたのプロシージャではなく、ブロブを選択したときにデータが見つからないということは確かですか?あなたのプロシージャコールはまだコメントアウトしていますか?

+0

ありがとう、私はすでにそれを見つけましたが、それでも同じ結果NO_DATA_FOUND – Silverrook

+0

@ Silverrookまず、上のコードのように基本的な方法を試してみてください。何も壮大ではなく、ちょうどデバッグのものです。セットアップに関する詳細をいくつか提供してください。物事を試してみてください。私はもっ​​と情報なしでは、私たちがもう助けてくれるとは思わない。 – Tom