>UTIL_FILE example

>-öncelik ile yükleme yapacağımız tabloyu yaratalım.

create table kisiler(adi varchar2(30),
soyadi varchar2(30),
yasi number);

–Küçük bir not ekleyelim hemen araya. burada directory adını verirken buyuk harf ile vermeyi

–unutmayalım. dosyadan okuduğu için buyuk hart vermeniz gerekecektir.
–paketimizi yaratalım.

CREATE OR REPLACE PROCEDURE dosyadan_yukleme
AS
v_line VARCHAR2 (2000); — dosyadan okunacak her bir satır
v_file UTL_FILE.file_type; — Verilerin olduğu dosya
v_dir VARCHAR2 (250); — dosyanın bulunduğu dizin
v_filename VARCHAR2 (50); — dosyamızın adı
v_1st_virgul NUMBER; –ilk virgulun olduğu yer
v_2nd_virgul NUMBER; –ikinci virgülün olduğu yer
v_adi VARCHAR2(30); –alanlarımız için değişkenler ADI
v_soyadi VARCHAR2 (30); –alanlarımız için değişkenler SOYADI
v_yasi NUMBER; –alanlarımız için değişkenler YASI
BEGIN
v_dir := ‘dosya_yolum’;
v_filename := ‘kisiler.txt’;
v_file := UTL_FILE.fopen (v_dir, ‘kisiler.txt’, ‘r’,1000);

— ——————————————————–
–DOSYA SONUNA GELENE KADAR OKU
— ——————————————————–
LOOP
BEGIN
UTL_FILE.get_line (v_file, v_line);
EXCEPTION
WHEN NO_DATA_FOUND
THEN
EXIT;
END;

v_1st_virgul := INSTR (v_line, ‘,’, 1, 1);
v_2nd_virgul := INSTR (v_line, ‘,’, 1, 2);
v_adi := SUBSTR (v_line, 1, v_1st_virgul – 1);
v_soyadi :=
SUBSTR (v_line, v_1st_virgul + 1, v_2nd_virgul – v_1st_virgul – 1);
v_yasi := SUBSTR (v_line, v_2nd_virgul + 1);
DBMS_OUTPUT.put_line (v_adi|| ‘ – ‘ || v_soyadi || ‘ – ‘ || v_yasi);

— ——————————————
— Kayıtları oluşturduğumuz tabloya eklemeyi yapıyoruz.
— ——————————————
INSERT INTO kisiler
VALUES (upper(v_adi), UPPER (v_soyadi), v_yasi);
END LOOP;

UTL_FILE.fclose (v_file);
COMMIT;
END;
/

–dosyamda aşağıdaki gibi kayıtlar var.
–ad,a,12
–al,at25
–nur,ak,24
–ak,alçın,30

BEGIN
DOSYADAN_YUKLEME;
COMMIT;
END;
—————–

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s