1. Utwórz obiekt katalogu, w którym będziesz pisać plik CSV.
-- dla systemów Windows utwórz w następujący sposób zmień folder podświetlony w kataloguCREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp' /-- dla systemów Unix/Linux utwórz w następujący sposób
CREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/' /Uwaga:Zmień lokalizację folderu na lokalizację katalogu, np. c:\abc lub /abc/.
2. Utwórz procedurę bazy danych w schemacie Scott lub jeśli tworzysz w innym schemacie, upewnij się, że masz tabelę Emp w tym schemacie, w przeciwnym razie musisz zmienić kursor i odniesienia do pól dla dowolnej innej tabeli.
CREATE OR REPLACE PROCEDURE export_to_csv IS v_file UTL_FILE.file_type; v_string VARCHAR2 (4000); CURSOR c_emp IS SELECT empno, ename, deptno, sal, comm FROM emp; BEGIN v_file := UTL_FILE.fopen ('CSVDIR', 'empdata.csv', 'w', 1000); -- if you do not want heading then remove below two lines v_string := 'Emp Code, Emp Name, Dept, Salary, Commission'; UTL_FILE.put_line (v_file, v_string); FOR cur IN c_emp LOOP v_string := cur.empno || ',' || cur.ename || ',' || cur.deptno || ',' || cur.sal || ',' || cur.comm; UTL_FILE.put_line (v_file, v_string); END LOOP; UTL_FILE.fclose (v_file); EXCEPTION WHEN OTHERS THEN IF UTL_FILE.is_open (v_file) THEN UTL_FILE.fclose (v_file); END IF; END;
3. Teraz uruchom procedurę w następujący sposób:
BEGIN export_to_csv; END;Możesz teraz sprawdzić katalog określony w poleceniu Utwórz katalog, czy plik empdata.csv musi istnieć z danymi tabeli. Stworzyłem narzędzie, które generuje procedurę online, wypróbuj:
- Generuj procedurę PL/SQL online, aby wyeksportować dane z tabeli
-
Oracle - Dlaczego powinienem używać pakietów zamiast samodzielnych procedur lub funkcji?
-
Różnica między klauzulami ON i WHERE w złączeniach tabel SQL
-
Oracle:unikatowość selektywna indeksu na podstawie funkcji
-
Spring's Stored Procedure - wyniki powracające z procedury są zawsze puste
-
2 sposoby na uzyskanie dnia z randki w Oracle