2017-08-18 2 views
0

Ich muss Werte in einer vorhandenen Tabelle mit Werten aus einer CSV-Datei aktualisieren. Die Übereinstimmung ist nur mit den ursprünglichen CSV-Dateien möglich. Mit den vorhandenen Ladeprozeduren werden die Werte, die ich lesen muss, nicht analysiert. Ich habe zwei CSV-Dateien mit unterschiedlichem Inhalt in Spalte x. Bevor ich den zweiten in den DB lade, möchte ich die Werte im DB entsprechend den Daten in der Datei 2, Spalte x aktualisieren, damit das Matching noch möglich ist. Wie kann ich einfach die CSV-Datei 2 mit gelesener UTL-Datei in eine temporäre Tabelle laden?Oracle 11 pl/sql liest Werte aus einer CSV-Datei in eine temporäre Tabelle

+0

können Sie SQL verwenden * Loader –

Antwort

0

um eine Datei in PLSQL zu lesen, sollten Sie die nächsten Schritte ausführen, 1. Sie sollten ein Objet-Verzeichnis erstellen. ea

create directory dir_tmp as ‘c:\temp’; 
grant read, write on directory dir_tmp to user; 

2.zu lesen.

create or replace procedure reading is 
v_file utl_file.file_type; 
v_line varchar2(1024); 
begin 
v_file := utl_file.fopen (‘DIR_TMP’, ‘test_utl_file.txt’,‘r’); 
loop 
utl_file.get_line (v_file, v_line); 
dbms_output.put_line (v_line); 
end loop; 
utl_file.fclose(v_file); 

exception 
when no_data_found then 
dbms_output.put_line (‘End file’); 
end; 
/

3.- Es gibt einige Ausnahme nützliche EA.

utl_file.invalid_operation 
utl_file.access_denied 

Erod

+0

Nur ein Hinweis für alle, die diese in die Zukunft sieht, da ich einige Zeit verschwendet versuchen, diese Arbeit zu bekommen, ohne es zu merken: Sie können nur mit Verzeichnissen arbeiten und Dateien, die lokal für die Maschine sind, auf der Oracle ausgeführt wird. Hoffe, das hilft jemandem da draußen. –

Verwandte Themen