По-долу е даден пример стъпка по стъпка за експортиране на данни в CSV файл в Oracle с помощта на PL SQL процедура. В този пример данните се експортират от някои полета на Emp таблица на схемата на Scott към CSV файл с помощта на UTL_FILE пакет на Oracle. Следвайте стъпките по-долу, за да експортирате данни от таблицата на Oracle Database в CSV файл. 1. Създайте обект на директория, в който ще пишете CSV файл.
-- за Windows системи създайте, както следва, променете папката, маркирана с вашата директорияCREATE OR REPLACE DIRECTORY CSVDIR AS 'd:\temp'
/
-- за Unix/Linux системи създайте както следваCREATE OR REPLACE DIRECTORY CSVDIR AS '/temp/'
/
Забележка:Променете местоположението на папката на местоположението на вашата директория, например c:\abc или /abc/. 2. Създайте процедура за база данни в схема на Scott или ако създавате в друга схема, тогава се уверете, че имате таблицата Emp в тази схема, в противен случай трябва да промените курсора и препратките на полето за всяка друга таблица.
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. Сега изпълнете процедурата, както следва:
BEGIN
export_to_csv;
END;
Вече можете да проверите вашата директория, която сте посочили в командата Create Directory, че файлът empdata.csv трябва да съществува с данните от таблицата. Създадох помощна програма, която генерира процедурата онлайн, опитайте я: - Генерирайте PL/SQL процедура онлайн за експортиране на данни от таблица