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

Import af filer i Oracle Apex ved hjælp af wwv_flow_files

Antag, at du vil importere et csv-filindhold med brugerdefineret databaseprocedure i Oracle Apex ved hjælp af fil-gennemse sideelement. Følg disse trin:Opret fil-gennemse-sideelement i Apex og vælg wwv_flow_files-indstillingen for at gemme filen. Opret derefter sideprocessen og vælg efter indsendelse og udførelse af valideringsindstillingen og plsql-kodeindstillingen for processen. Skriv følgende kode i plsql-området at eksportere csv-fil fra databasen (wwv_flow_files view) til serverdrev og derefter kalde din brugerdefinerede procedure for at importere filens indhold til en tabel.DECLARE
v_upl_blob BLOB;
vstart Number :=1;
bytelen Number :=32000;
len Number;
my_vr Raw (32000);
x Number;
l_output Utl_file.file_type;
erout varchar2(1000);
BEGIN
VÆLG blob_content
INTO v_upl_blob
FRA wwv_flow_files
WHERE name =:P25_FB;
-- :p25_fb er elementet til filgennemse på side
LEN :=Dbms_lob.getlength(V_UPL_BLOB);
l_output :=Utl_File.fopen ('MY_FILES', :P25_FB, 'wb', 32760);
vstart :=1;
bytelen :=32000;
IF len <32760

Utl_File.put_raw (l_output, V_UPL_BLOB);
Utl_File.fflush (l_output);
Else -- skriv i stykker
vstart :=1;

MENS vstart 0
LOOP
Dbms_lob.Read (V_UPL_BLOB, bytelen, vstart, my_vr);
Utl_File.put_raw (l_output, my_vr);
Utl_File.fflush (l_output);
-- indstil startpositionen for næste klip
vstart :=vstart + bytelen;
-- indstil slutpositionen hvis mindre end 32000 bytes
x :=x - bytelen;

IF x <32000

bytelen :=x;
END IF;
END LOOP;
END IF;

Utl_File.fclose (l_output);

SLET FRA wwv_flow_files
WHERE name =:P25_FB;
COMMIT;
--- kald din brugerdefinerede databaseprocedure for at importere...
yourcustomprocedure(:P25_FB);
UNDTAGELSE Når Andre

IF Utl_File.is_Open(l_output) Så
Utl_File.fclose (L_OUTPUT);
END IF;
hæve;
END;

  1. Forhåndsvisning af dokumenter i Microsoft Access-formular

  2. ORA-01658:ude af stand til at oprette INITIAL-udstrækning for segment i tablespace TS_DATA

  3. Hvad er en god måde at trimme alle blanktegn fra en streng i T-SQL uden UDF og uden CLR?

  4. ADO.net SqlTransaction forbedrer ydeevnen