Fájlok megnyitása és lezárása

Az UTL_FILE modul minden műveletében megjelenik a fájlleíró fogalma. A fájl (fájlkezelő) leírója vagy logikai száma az a érték, amelyet a PL / SQL-ben használnak egy fájl azonosításához, hasonlóan a kurzorazonosítóhoz a DBMS_SQL modulban. Minden fájlleírást UTL_FILE.FILE_TYPE típusúak, a FOPEN függvény visszaküldi azokat, és az IN paraméterek átkerülnek más UTL_FILE rutinokba.

A FOPEN funkció megnyitja a fájl bemenetét vagy kimenetét. A fájl bármikor megnyitható, vagy csak bemenetre, vagy csak kimenetre. A FOPEN leírása a következő:

FOPEN függvény (varchar2. hely, varchar2 fájlnév, open_mode in

A könyvtár, amelyhez az elérési utat meg kell adni, ennek a függvénynek a végrehajtásakor létezik - a FOPEN nem hoz létre. Ha azonban az OPEN_MODE módot "w" -re állítja, a meglévő fájl felül lesz írva. A FOPEN funkció paramétereit és visszatérési értékét az alábbi táblázat írja le:

8. táblázat A FOPEN funkció paraméterei

A fájl helye, ahol a fájl található. Ha ez a könyvtár nem áll rendelkezésre, akkor az UTL_FILE.INVALID_PATH van beállítva.

A megnyitandó fájl neve. Ha "w" van megadva, a meglévő fájl felülíródik.

Az alkalmazott mód. A lehetséges értékek a következők: 'r' - a szöveg olvasása; "W" - szöveg írása; "A" - szöveg hozzáadásával. Ez a paraméter érzékeny a kis- és nagybetűkre. Ha az üzemmód "a", és a fájl nem létezik, akkor "w" módban hozza létre.

A későbbiekben a függvényekben használt fájlleíró.

Az Oracle8 és újabb verziókban a FOPEN függvény egy további, felülbírált változata kerül az UTL_FILE modulba:

FOPEN függvény (varchar2. hely, varchar2 fájlnév, open_mode in

varchar2. max_linesize a bináris_integerben);

Helyparaméterek, filename OPEN_MODE és ugyanúgy viselkednek, mint az első kiviteli fopen és MAXLINESIZE adhatja meg a maximális fájlméretet a húr. Tartomány: 1 32767 Ha ez nincs megadva, akkor a maximális string size beállítása 1024. Ha az MAXLINESIZE kevesebb, mint 1 vagy nagyobb, mint 32.767 székhelye kivétel UTL_FILE.INVALID_MAXLINESIZE.

Miután a fájlt olvasta vagy írta, a fájlt az FCLOSE eljárással kell lezárni. Ennek eredményeképpen az UTL_FILE modul által a fájlhoz használt erőforrások szabadulnak fel. Az FCLOSE leírása a következő:

az FCLOSE eljárás (file_handle out FILE_TYPE);

Az eljárás egyetlen paramétere a fájlleíró. A fájlba írandó összes változtatást a bezárás előtt le kell zárni. Írási hiba esetén az UTL_FILE.WRITE_ERROR be van állítva. Ha a fogantyú nem azonosítja a helyes nyitott fájlt, akkor az UTL_FILE.INVALID_FILEHANDLE be van állítva.

Gyakran előfordulhat, hogy mielőtt az olvasási műveleteket egy fájlból átírná, vagy írásban / átírást készítene egy fájlba, akkor ellenőrizni kell, hogy ez a fájl nyitva van-e. E célból az IS_OPEN függvényt az UTL_FILE modul biztosítja. Ez a logikai függvény a TRUE értéket adja vissza, ha a megadott fájl nyitva van, FALSE pedig ha nem nyitott. Az IS_OPEN funkció leírása a következő:

A funkció NYITVA (file_handle a FILE TYPE-ben)

Még akkor is, ha az IS_OPEN visszaadja a TRUE értéket, az operációs rendszer hibái fordulhatnak elő, ha ezzel a fájllal dolgozik.

Az UTL_FILE modul FCLOSE_ALL eljárás lezárja az összes megnyitott fájlt. Úgy tervezték, hogy eltávolítsa a felesleges információkat, amelyek különösen hasznosak a kivételkezelők számára:

Ez az eljárás nem tartalmaz érveket. Minden függőben lévő változatot a fájlok bezárása előtt lemásznak a lemezre. Így írási hiba esetén az FCLOSE_ALL beállíthatja az UTL_FILE.WRITE_ERROR kivételt.

Kapcsolódó cikkek