sql >> Database teknologi >  >> RDS >> Oracle

APEX:Download BLOB fra den midlertidige tabel

Prøv at tilføje apex_application.stop_apex_engine efter wpg_docload opkald. Dette vil undgå yderligere output af HTTP-headere, hvilket potentielt ødelægger din download, fordi der genereres yderligere apex-kode.

  owa_util.mime_header( nvl(v_mime,'application/octet'), FALSE );
  htp.p('Content-length: ' || v_length);
  htp.p('Content-Disposition:  attachment; filename="'||replace(replace(substr(v_file_name,instr(v_file_name,'/')+1),chr(10),null),chr(13),null)|| '"');
  owa_util.http_header_close;
  wpg_docload.download_file( Lob_loc );
  apex_application.stop_apex_engine;

Desuden for at uddybe :

Ja. Men ikke nødvendigvis i dit tilfælde. Det er vigtigt at huske, hvordan apex fungerer med hensyn til databasesessioner. Apex er tilstandsløst og arbejder med forbindelsespooling. En apex-session matcher generelt ikke 1 databasesession, og du er aldrig garanteret, at for eksempel den samme databasesession bruges mellem gengivelse og behandling. Dette er også kort nævnt i dokumentationen på Forstå Session State Management , kopieret for nemheds skyld:

I tilfælde af en global midlertidig tabel betyder det, at den i mange tilfælde er meningsløs at bruge, da data kun vil eksistere i den aktuelle databasesession. Et eksempel på dette er, hvor man ville indlæse data i en GTT et sted i onloaden og midler til at bruge dem i efter-submit-processerne eller et ajax-opkald. Stor chance for, at bordet er tomt.
Apex tilbyder dog et alternativ i form af apex_collection , som midlertidigt vil opbevare data inden for en given apex-session.



  1. php oci_bind_by_name flyder til numerisk

  2. Søg efter en model givet prisinterval i forskellige valutaer

  3. Sådan får du Android App til at kommunikere med ekstern MySQL db

  4. Sådan kontrolleres størrelsen af ​​en database i MySQL