Я использую UTL_FILE для извлечения выходных данных из файла .csv и пытаюсь добавить пол к уже существующим данным файла. Но в любом случае я не мог получить ожидаемый результат. Нужна быстрая помощь по этому вопросу.
Фактический файл (Details.csv):
Name,Country,State,City
Lina,Brazil,Bahia,Salvador
John,USA,Texas,Austin
Ashton,Australia,Tasmania,Hobart
Мой вывод:
Name,Country,State,City
,Gender
Lina,Brazil,Bahia,Salvador
,Female
John,USA,Texas,Austin
,Male
Ashton,Australia,Tasmania,Hobart
,Male
Ожидаемый результат (Details_upd.csv):
Name,Country,State,City,Gender
Lina,Brazil,Bahia,Salvador,Female
John,USA,Texas,Austin,Male
Ashton,Australia,Tasmania,Hobart,Male
------ Код --------
DECLARE
f_line VARCHAR2 (32767);
file_1 UTL_FILE.file_type;
file_2 UTL_FILE.file_type;
f_dir VARCHAR2 (25) := 'DATA';
L_check_UPDATED BOOLEAN;
l_line VARCHAR2(32767);
BEGIN
file_1 := UTL_FILE.fopen (f_dir,'Details.csv','R');
file_2 := UTL_FILE.fopen (f_dir,'Details_upd.csv', 'W');
UTL_FILE.get_line (file_1, f_line);
l_line := trim(f_line);
UTL_FILE.PUT_LINE(file_2,l_line||','||'Gender');
LOOP
L_check_UPDATED := TRUE;
/*--omitting the LOGIC part of code--*/
IF (L_check_UPDATED) THEN
l_line := trim(f_line);
UTL_FILE.PUT(file_2,l_line||',Male');
ELSE
l_line := trim(f_line);
UTL_FILE.PUT_LINE(file_2,l_line||',Female');
END IF;
END LOOP;
UTL_FILE.fclose (file_1);
UTL_FILE.fclose (file_2);
END;