Lesen Sie text-Datei zum einfügen von Daten in Oracle SQL-Tabelle
Ich studiere Oracle SQL developer.
Was ich Tue, ist das Lesen von text-Datei Zeile für Zeile aus dem Ordner.
Dann Einfügen von Daten in die SQL-Tabelle.
Ich bin in der Lage zu kompilieren meine VORGEHENSWEISE, aber es scheint nicht zu sein, das einfügen der Daten in die Datei.
Create or Replace PROCEDURE Rfile is
f UTL_FILE.FILE_TYPE;
s VARCHAR2(200);
BEGIN
f := UTL_FILE.FOPEN('C:\Projects\','testdatabinary.txt','R');
IF UTL_FILE.IS_OPEN(f) THEN
LOOP
BEGIN
UTL_FILE.GET_LINE(f,s);
IF s IS NULL THEN
EXIT;
END IF;
INSERT INTO DATAINSERT
(COLUMN1, COLUMN2)
VALUES
(s, 'testdatabinary');
END;
END LOOP;
COMMIT;
END IF;
END;
Und ich habe eine Tabelle DATAINSERT mit zwei varchar(200) Typ cols
Ich bin nicht wirklich sicher, ob die Gründe, die PROZEDUR ist nicht das einfügen von Daten in Tabelle
Ich habe gerade überprüft Fehlermeldung
Error starting at line 1 in command:
EXEC Rfile
ORA-29280: invalid directory path
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at "SYSTEM.RFILE", line 5
Ist die erste Zeile NULL ist? Sie konnte dbms_output verwenden.put_line(s), um zu sehen, was es liest.
Nein , Es ist das problem der Verzeichnis-Pfad. Ich habe überprüft, und kopieren Sie und fügen Sie das Verzeichnis der Datei genau :(. allerdings ist es immer noch ein problem
Und die Datei/Verzeichnis existiert auf dem server? Nicht sehen, nichts falsch mit dem code.
ja ! also ich erstelle Pfad-Namen wie "MYDIR" und ich repleased wie f := UTL_FILE.FOPEN('MYDIR','testdatabinary.txt','R');
dann bekam ich eine Fehlermeldung wie "01403. 00000 - "keine Daten gefunden""
Nein , Es ist das problem der Verzeichnis-Pfad. Ich habe überprüft, und kopieren Sie und fügen Sie das Verzeichnis der Datei genau :(. allerdings ist es immer noch ein problem
Und die Datei/Verzeichnis existiert auf dem server? Nicht sehen, nichts falsch mit dem code.
ja ! also ich erstelle Pfad-Namen wie "MYDIR" und ich repleased wie f := UTL_FILE.FOPEN('MYDIR','testdatabinary.txt','R');
dann bekam ich eine Fehlermeldung wie "01403. 00000 - "keine Daten gefunden""
InformationsquelleAutor Dc Redwing | 2013-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, was die Probleme verursacht. Für mich ist es wunderbar funktioniert, hier ist mein Beispiel code
--Referenz-Website
--https://community.oracle.com/thread/3633577?start=0&tstart=0
InformationsquelleAutor laks
Können Sie nicht in der Lage, geben Sie den Pfad direkt auf den Datei-öffnen-Befehl wie diesen
Anstelle der Eingabe-Pfad direkt, Sie haben zu erstellen directory mit der folgenden sql-Abfrage
ERSTELLEN oder zu ersetzen, VERZEICHNIS USER_DIR ALS 'C:\PROJECTS\';
Dann geben Sie den Namen des Verzeichnisses, der Datei-öffnen-Befehl. Es wird so sein
InformationsquelleAutor Nizar
Ersten Verfahren wird versucht, laden Sie die Datei vom PC in den server, während im zweiten Verfahren die Datei ist von server zu server.
UTL_FILE.FOPEN
funktioniert für server-side-PL/SQL. So erste Verfahren nicht korrekt ausgeführt werden... Wenn Sie möchten, laden Sie eine Datei vom PC zum server, dann müssen Sie Benutzer-front-end wie D@K oder VB.InformationsquelleAutor Mahesh
Den Fehler, dass Sie hier ist mit der workstation-Pfad, die Sie tatsächlich benötigen, werden mit dem Verzeichnis-Pfad.
Der Schnellste Weg, diese zu lösen, ist einfach zu verwenden, die WINSCP Befehl.
Verwenden WINSCP, Ihnen zu sagen, was das Verzeichnis Weg ist, dann einfach ersetzen Sie diese neue information für den alten Pfad, den Sie haben in Ihrem code, und alles sollte ok.
InformationsquelleAutor Prince Sharma
Dies ist sehr konzeptionellen und schwierig. finden Sie weitere Konzepte und details unter:
https://ora-data.blogspot.in/2016/11/read-and-writ-text-file-using-UTLFILE.html
Sicher hilfreich sein wird:
InformationsquelleAutor Sapna
ersten login mit
Benutzername:sys als sysdba
Passwort sollte das gleiche wie für den Benutzer 'system'
geben Sie nun
SQL - > grant execute on UTL_FILE to PUBLIC;
Jetzt anmelden mit user, mit denen Sie erstellen möchten, Verfahren
Ich denke, der Grund für den downvote ist, dass Ihre Antwort nicht zur Frage passen? Die Fehlermeldung die OP bekam, war nicht wegen fehlender Zuschüsse, die aber aufgrund einer falschen nennen.
InformationsquelleAutor Abhinav