Deschiderea și închiderea fișierelor

În toate operațiile modulului UTL_FILE, apare conceptul descriptorului de fișiere. Descriptor, sau LUN, fișier (mâner fișier) - este valoarea care este utilizată în PL / SQL pentru a identifica fișierul, cum ar fi ID-ul cursorul în modulul DBMS_SQL. Toți descriptorii de fișiere sunt de tip UTL_FILE.FILE_TYPE, se întorc funcția fopen și sunt transmise ca parametri la alte specii în rutina UTL_FILE.







Funcția FOPEN deschide fișierul pentru intrare sau ieșire. În orice moment, fișierul poate fi deschis sau doar pentru intrare sau numai pentru ieșire. Descrierea FOPEN este după cum urmează:

funcția FOPEN (locația în varchar2., numele fișierului în varchar2. open_mode în

Directorul la care este specificată calea trebuie să existe la momentul executării acestei funcții - FOPEN nu o creează. Cu toate acestea, dacă setați modul OPEN_MODE la "w", fișierul existent va fi suprascris. Parametrii și valoarea returnată a funcției FOPEN sunt descrise în tabelul următor:

Tabelul 8 Parametrii funcției FOPEN

Calea spre directorul în care este localizat fișierul. Dacă acest director nu este printre cele disponibile, este setat UTL_FILE.INVALID_PATH.

Numele fișierului de deschis. Dacă "w" este specificat, fișierul existent este suprascris.

Modul utilizat. Valorile posibile sunt: ​​"r" - citirea textului; "W" - scrierea de text; "A" - adăugarea de text. Acest parametru este insensibil pentru litere mici. Dacă modul este "a" și fișierul nu există, acesta este creat în modul "w".







Un descriptor de fișiere utilizat mai târziu în funcții.

În Oracle8 și peste, o versiune suplimentară, suprascrisă a funcției FOPEN este introdusă în modulul UTL_FILE:

funcția FOPEN (locația în varchar2., numele fișierului în varchar2. open_mode în

VARCHAR2. max_linesize în binary_integer);

Parametri localizare, OPEN_MODE și nume de fișier se comportă la fel ca și în primul exemplu de realizare fopen, și MAXLINESIZE este folosit pentru a specifica dimensiunea maximă a fișierului șirului. Interval: 1 la 32767. În cazul în care acest lucru nu este specificat, dimensiunea maximă șir este setată la 1024. Dacă MAXLINESIZE mai puțin de 1 sau mai mare decât 32767 este stabilită excepție UTL_FILE.INVALID_MAXLINESIZE.

După ce fișierul este citit sau scris în fișier, fișierul trebuie să fie închis utilizând procedura FCLOSE. Ca rezultat, resursele utilizate de modulul UTL_FILE pentru a lucra cu fișierul sunt eliberate. Descrierea FCLOSE este după cum urmează:

procedura FCLOSE (file_handle în afară FILE_TYPE);

Singurul parametru al acestei proceduri este descriptorul fișierului. Toate modificările care trebuie să fie scrise în fișier se termină înainte de închidere. În cazul unei erori de scriere, este setat UTL_FILE.WRITE_ERROR. În cazul în care descriptorul nu identifică un fișier deschis valid, apoi setați UTL_FILE.INVALID_FILEHANDLE.

Adesea, înainte de a efectua operații de citire dintr-un fișier sau de a scrie / rescrie într-un fișier, este util să verificați dacă acest fișier este deschis. În acest scop, funcția IS_OPEN este furnizată în modulul UTL_FILE. Această funcție logică returnează TRUE dacă fișierul specificat este deschis și FALSE dacă nu este deschis. Descrierea funcției IS_OPEN este următoarea:

funcția este OPEN (file_handle în FILE TYPE)

Chiar și atunci când IS_OPEN returnează TRUE, pot apărea erori de sistem de operare atunci când lucrați cu acest fișier.

Procedura FCLOSE_ALL a modulului UTL_FILE închide toate fișierele deschise. Acesta este conceput pentru a elimina informațiile inutile, care este deosebit de utilă în tratarea excepțiilor:

Această procedură nu are argumente. Toate modificările în așteptare sunt afișate pe disc înainte de închiderea fișierelor. Prin urmare, în cazul FCLOSE_ALL eroare de scriere poate stabili o UTL_FILE.WRITE_ERROR excepție.







Articole similare

Trimiteți-le prietenilor: