Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Importowanie plików w Oracle Apex za pomocą wwv_flow_files

Załóżmy, że chcesz zaimportować zawartość pliku csv z niestandardową procedurą bazy danych w Oracle Apex przy użyciu elementu strony przeglądania plików. Wykonaj następujące kroki:Utwórz element przeglądania pliku w Apex i wybierz opcję wwv_flow_files do przechowywania pliku. Następnie utwórz proces strony i wybierz po przesłaniu i wykonaniu opcję walidacji i opcję kodu plsql dla procesu. W obszarze plsql napisz następujący kod aby wyeksportować plik csv z bazy danych (widok wwv_flow_files) na dysk serwera, a następnie wywołać niestandardową procedurę importowania zawartości tego pliku do tabeli.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 to element przeglądania plików na stronie
LEN :=Dbms_lob.getlength(V_UPL_BLOB);
l_output :=Utl_File.fopen ('MOJE_PLIKI', :P25_FB, 'wb', 32760);
vstart :=1;
bytelen :=32000;
IF len <32760
Wtedy
Utl_File.put_raw (l_output, V_UPL_BLOB);
Utl_File.fflush (l_output);
Inny - pisz w częściach
vstart :=1;

PODCZAS vstart 0
PĘTLA
Dbms_lob.Read (V_UPL_BLOB, bytelen, vstart, my_vr);
Utl_File.put_raw (l_output, my_vr);
Utl_File.fflush (l_output);
-- ustaw pozycję początkową dla następnego cięcia
vstart :=vstart + bytelen;
-- ustaw pozycję końcową, jeśli jest mniejsza niż 32000 bajtów
x :=x - bajt;

IF x <32000
Wtedy
bajt :=x;
END IF;
END LOOP;
END IF;

Utl_File.fclose (l_output);

DELETE FROM wwv_flow_files
WHERE name =:P25_FB;
COMMIT;
--- wywołaj niestandardową procedurę bazy danych, aby zaimportować...
twoja niestandardowaprocedura(:P25_FB);
WYJĄTEK Gdy Inne
Wtedy
IF Utl_File.is_Open(l_output) Wtedy
Utl_File.fclose (L_OUTPUT);
END IF;
raise;
END;

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wartości oddzielone przecinkami w Oracle

  2. Zarządzanie obsługą błędów podczas uruchamiania sqlplus ze skryptów powłoki

  3. Jak zadeklarować zmienną i użyć jej w tym samym skrypcie Oracle SQL?

  4. Oracle PL/SQL:Eksportuj dane z tabeli do CSV

  5. Funkcja SIN() w Oracle