2017-06-12 2 views
0

Ich muss eine Datei .csv lesen, die in einem Verzeichnis meiner virtuellen Box oracle ist. In meinem lokalen System Windows mit SQL-Entwickler möchte ich eine Prozedur erstellen, die diese Datei in der virtuellen Box liest. Ich verstehe nicht, wie UTL_TCP.connection verwenden und wie diese Prozedur schreibenUTL_TCP.connection in pl sql verwenden

+1

Anstatt eine neue Frage zu stellen, geben Sie bitte Ihre [vorherigen Fragen] aktualisieren (https://stackoverflow.com/questions/44501621/procedure-pl-sql-zu-verbinden-zu-virtual-box-oracle-mit-protokoll-sftp-port-22) –

+0

'utl_tcp' ist ** nicht ** zum Lesen und Schreiben von Dateien. Sie suchen nach 'utl_file' –

Antwort

0

Verwenden Sie externe Tabellen.

Beachten Sie, dass vor dem Erstellen der externen Tabelle das Datenbankverzeichnis erstellt werden muss. Der angegebene Speicherort wird dann zum Lesen von Dateien verwendet. Sie können Trennzeichen, Trennzeichen und Dateinamen in der DDL-Anweisung mit der Erstellung der Tabelle angeben. Nach der Einrichtung können Abfragen mit der Standard-Select-Anweisung durchgeführt werden.

Zum Beispiel:

create directory << db directory >> as '/u01'; 

create table ext_filename_csv (
    column01 varchar2(4000), 
    column02 varchar2(4000), 
    column03 varchar2(4000) 
) 
organization external ( 
    type oracle_loader 
    default directory << db directory >> 
    access parameters ( 
    records delimited by newline 
    fields terminated by ",") 
    location (<< db directory >>:'filename.txt') 
); 

Lesen Sie mehr hier:

http://psoug.org/reference/externaltab.html

+0

Also muss ich nicht etwas über ftp Protokoll verwenden? – filippo

+0

Ich habe keine externe db auf meiner virtuellen Maschine oracle.Thete Ich habe nur die Datei csv und ich möchte es lesen mit einem Protokoll ftp wie in filezilla.But ich will das mit einem pl sql Verfahren om mein lokales System zu tun Windows mit SQL-Entwickler – filippo

+0

Wenn es machbar ist, übertragen Sie die Datei. Laden Sie es als zweites. Wenn nicht, würde ich vorschlagen, dass Sie eine Dateifreigabe wie SMB Access-Host-Dateisystem verwenden. Ansonsten verwenden Sie das Paket ftp package von plsql-utils. (zB [link] (https://github.com/mortenbra/alexandria-plsql-utils/blob/master/ora/ftp_util_pkg.pkb)) –