sql >> Databáze >  >> RDS >> Oracle

Import souborů do Oracle Apex pomocí wwv_flow_files

Předpokládejme, že chcete importovat obsah souboru csv s vlastní databázovou procedurou v Oracle Apex pomocí položky stránky procházení souborů. Postupujte takto:Vytvořte soubor procházení položky stránky v Apexu a vyberte možnost wwv_flow_files pro uložení souboru. Poté vytvořte proces stránky a po odeslání a provedení ověření vyberte možnost a možnost kódu plsql pro proces. Do oblasti plsql napište následující kód exportovat soubor csv z databáze (zobrazení wwv_flow_files) na jednotku serveru a poté zavolat vlastní proceduru pro import obsahu tohoto souboru do tabulky. 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
SELECT blob_content
INTO v_upl_blob
FROM wwv_flow_files
WHERE name =:P25_FB;
-- :p25_fb je položka pro procházení souborů na stránce
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
Potom
Utl_File.put_raw (l_output, V_UPL_BLOB);
Utl_File.fflush (l_output);
Jinak -- pište po částech
vstart :=1;

WHILE 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);
-- nastavte počáteční pozici pro další řez
vstart :=vstart + bytelen;
-- nastavte koncovou pozici, pokud je menší než 32 000 bajtů
x :=x - bytelen;

IF x <32000
Potom
bytelen :=x;
END IF;
END LOOP;
END IF;

Utl_File.fclose (l_output);

DELETE FROM wwv_flow_files
WHERE name =:P25_FB;
COMMIT;
--- zavolejte proceduru vlastní databáze pro import...
yourcustomprocedure(:P25_FB);
EXCEPTION When Others
Then
IF Utl_File.is_Open(l_output) Then
Utl_File.fclose (L_OUTPUT);
END IF;
raise;
END;

  1. Oprava „ERROR 1222 (21000):Použité příkazy SELECT mají jiný počet sloupců“ při použití UNION v MySQL

  2. Co může způsobit občasné chyby ORA-12519 (TNS:nebyla nalezena žádná vhodná obsluha).

  3. SQL Server Sledování běžících dotazů

  4. Jaké jsou výhody a nevýhody provádění výpočtů v SQL vs. ve vaší aplikaci