列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の提案どおりに実行し、ページのデバッグを実行しましたか?あなたの「パージ」はどのように設定されていますか?データが見つからないのは、プロシージャではなく、blobの選択で発生しますか?プロシージャの呼び出しをコメントアウトしましたか?