Lexikális egységek

A PL/SQL program szövegében a következő lexikális egységek használhatók:

Ezeket részletezzük a következőkben.

Az elhatároló egy olyan karakter vagy karaktersorozat (többkarakteres szimbólum), amely speciális jelentéssel bír a PL/SQL program szövegében. Az egykarakteres elhatárolókat a 2.1. táblázat tartalmazza. A PL/SQL többkarakteres szimbólumait a 2.2. táblázatban láthatjuk.

2.1. táblázat - Egykarakteres elhatárolók

Szimbólum

Jelentés

+

Összeadás operátora

%

Attribútum kezdőszimbóluma

Sztring literál határoló

.

Komponens szelektor

/

Osztás operátora

(

Részkifejezés vagy lista kezdete

)

Részkifejezés vagy lista vége

:

Gazdaváltozó kezdőszimbóluma

,

Felsorolás elválasztójele

*

Szorzás operátora

Idézőjeles azonosító határolójele

=

Hasonlító operátor

<

Hasonlító operátor

>

Hasonlító operátor

@

Távoli hivatkozás szimbóluma

;

Utasítás végjele

Kivonás és negatív előjel operátora

2.2. táblázat - A PL/SQL többkarakteres szimbólumai

Szimbólum

Jelentés

: =

Értékadás operátora

=>

Hozzárendelés operátora

||

Összefűzés operátora

**

Hatványozás operátora

<<

Címke kezdete

>>

Címke vége

/*

Megjegyzés kezdete

*/

Megjegyzés vége

..

Intervallum operátora

< >

Hasonlító operátor

!=

Hasonlító operátor

~=

Hasonlító operátor

^=

Hasonlító operátor

<=

Hasonlító operátor

>=

Hasonlító operátor

– –

Egysoros megjegyzés kezdete

Azonosítók

Az azonosító a PL/SQL program bizonyos elemeinek megnevezésére szolgál azért, hogy a program szövegében az adott elemekre ezzel a névvel tudjunk hivatkozni. Ilyen programelemek például a változók, kurzorok, kivételek, alprogramok és csomagok.

Az azonosító olyan karaktersorozat, amely betűvel kezdődik és esetlegesen betűvel, számjeggyel, illetve a $, _, # karakterekkel folytatódhat. Egy azonosító maximális hossza 30 karakter és minden karakter szignifikáns.

Mivel a PL/SQL a kis- és nagybetűket nem tekinti különbözőnek, ezért a következő azonosítók megegyeznek:

Hallgato

HALLGATO

hallgato

Az alábbiak szabályos azonosítók:

x

h3#

hallgato_azonosito

SzemelyNev

A következő karaktersorozatok nem azonosítók:

x+y -- a + nem megengedett karakter

_hallgato -- betűvel kell kezdôdnie

Igen/Nem -- a / nem megengedett karakter

Foglalt szavak

A foglalt szó (alapszó, kulcsszó, fenntartott szó) olyan karaktersorozat, amelynek maga a PL/SQL tulajdonít speciális jelentést és ez a jelentés nem megváltoztatható. Egy foglalt szó soha nem használható azonosítóként. Ugyanakkor viszont egy azonosító része lehet foglalt szó. Szabálytalan tehát a következő:

DECLARE

mod BOOLEAN;

Szabályos viszont az alábbi, jóllehet a modor azonosító két foglalt szót is tartalmaz:

DECLARE

modor BOOLEAN;

A PL/SQL foglalt szavait az A) függelék tartalmazza.

Az Oracle-dokumentációk és egyes irodalmak általában a fenntartott szavakat nagybetűs alakban használják, a továbbiakban mi is ezt a konvenciót alkalmazzuk.

Előre definiált azonosítók

Az előre definiált (vagy standard) azonosító olyan azonosító, amelyet a STANDARD csomag definiál (például INVALID_NUMBER). Ezeket minden PL/SQL program használhatja a definiált jelentéssel, de bármikor felül is definiálhatja azt. Az újraértelmezés természetesen ideiglenes, csak lokálisan érvényes. Az előre definiált azonosítók felüldefiniálása hibaforrás lehet, inkonzisztenciához vezethet, ezért alkalmazását nem javasoljuk.

Idézőjeles azonosító

A PL/SQL lehetővé teszi, hogy egy azonosítót idézőjelek közé zárjunk. Ekkor az azonosítóban különböznek a kis- és nagybetűk, és használható benne a karakterkészlet összes karaktere. Így a következő idézőjeles azonosítók szabályosak:

"Igen/Nem"

"mod"

"Ez egy azonosito"

"x+y"

Az idézőjeles azonosítók használatával lehetővé válik fenntartott szavak azonosítóként való használata és „beszédesebb” azonosítók alkalmazása. Igazi jelentősége viszont ott van, hogy a PL/SQL olyan fenntartott szavai, amelyek az SQL-nek nem fenntartott szavai, használhatók SQL utasításban, például akkor, ha az SQL tábla egy oszlopának neve fenntartott PL/SQL szó. Ez persze elsősorban az angol nyelvű alkalmazásoknál jelent előnyt.

Itt jegyezzük meg, hogy az idézőjeles azonosítók az adatszótárban karakterhelyesen, az azonosítók viszont csupa nagybetűvel tárolódnak.

A megjegyzés az a programozási eszköz, amelyet a PL/SQL fordító nem vesz figyelembe. Ez egy olyan magyarázó szöveg, amely a program olvashatóságát, érthetőségét segíti elő. Egy jól megírt forrásszövegben általában kódszegmensenként vannak megjegyzések, amelyek az adott kódrészlet működését, használatát magyarázzák el. Egy megjegyzés tetszőleges karaktereket tartalmazhat.

A PL/SQL kétféle megjegyzést, úgymint egysoros és többsoros megjegyzést ismer.

Egysoros megjegyzés

Az egysoros megjegyzés bármely sorban elhelyezhető, a -- jelek után áll és a sor végéig tart. A sorban a -- jelek előtt tényleges kódrészlet helyezhető el. Példa az egysoros megjegyzések alkalmazására:

-- a számítások kezdete

SELECT fiz INTO fizetes -- a fizetés lekérése

FROM dolg -- a dolgozó táblából

.

.

.

Az egysoros megjegyzések jól alkalmazhatók a program belövésénél. Ha a tesztelésnél egy adott sor tartalmát figyelmen kívül akarjuk hagyni, akkor rakjuk elé a -- jeleket, amint az alábbi példa mutatja:

-- SELECT * FROM dolg WHERE fiz>500000;

Többsoros megjegyzés

A többsoros megjegyzés a /* többkarakteres szimbólummal kezdődik és a */ jelkombináció jelzi a végét. A többsoros megjegyzés tetszőlegesen sok soron keresztül tarthat. Példa többsoros megjegyzésre:

BEGIN

.

.

.

/* A következő kód meghatározza

azon osztályok dolgozóinak átlagfizetését,

amelyek létszáma kevesebb mint 10. */

.

.

.

END;

A többsoros megjegyzések nem ágyazhatók egymásba.

Az olyan PL/SQL blokkban, amelyet egy előfordító dolgoz fel, nem alkalmazható egysoros megjegyzés, mivel az előfordító a sorvége karaktereket ignorálja. Ekkor használjunk többsoros megjegyzéseket.

A literál egy explicit numerikus vagy sztring érték, amely a PL/SQL kód forrásszövegében önmagát definiálja.

Numerikus literálok

A numerikus literálnak két fajtája van: egész és valós literál.

Az egész literál egy opcionális + vagy – előjelből és egy számjegysorozatból áll:

011 5 –33 +139 0

A valós literál lehet tizedestört és exponenciális alakú. A tizedestörtnek opcionálisan lehet előjele (+ vagy –) és van egész és tört része. Az egész és tört rész között egy tizedespont áll:

6.666 3.14159 0.0 –1.0 +0.341

Az egész és tört rész valamelyike, amennyiben értéke nulla, elhagyható. Szabályos tizedestört valós literálok tehát a következők:

.5 +15.

Az exponenciális valós literál egy mantisszából (ami egész vagy tizedestört literál lehet) és egy karakterisztikából (ami egy egész) áll. A kettő között egy E vagy e betű szerepel:

2E5 –3.3e–11 .01e+28 3.14153e0

A nemzeti nyelvi támogatás beállításaitól függően a tizedespont helyett más karakter is állhat egy tizedestört literálban (például vessző).

A valós literál végén szerepelhet az f illetve a d betű, jelezve, hogy a literál BINARY_FLOAT, illetve BINARY_DOUBLE típusú. Például:

2.0f 2.0d

Sztring literálok

A sztring literálnak két különböző alakja lehet. Egyik esetben a sztring literál egy aposztrófok közé zárt tetszőleges látható karaktereket tartalmazó karaktersorozat. Példa ilyen sztring literálra:

'a' 'almafa' ' ''Barátaim!'' mondta'

Az ilyen sztring literálon belül a kis- és nagybetűk különböznek. Az aposztróf karaktert annak megkettőzésével lehet megjeleníteni. Például:

'Nem tudom ''jó'' helyen járok-e? '

A második alakú sztring literált speciális nyitó és záró szekvenciák határolják. Az ilyen sztring literál alakja:

q'nyitókarakter sztring zárókarakter'

Ha a nyitókarakter a [, {, <, ( jelek egyike, akkor a zárókarakter kötelezően ezek természetes

párja, azaz rendre ], }, > ) jel. Egyéb nyitókarakter esetén a zárókarakter megegyezik

a nyitókarakterrel. Ennek az alaknak a következményeként az aposztrófokat nem kell a

sztring karaktersorozatán belül duplázni, azonban a sztring nem tartalmazhatja a zárókarakter

aposztróf jelkombinációt, mert az már a literál végét jelentené.

Példaként nézzük az a’b sztring literál néhány lehetséges felírási formáját:

Első („hagyományos”) alak:

'a''b'

Második alak (speciális nyitó- és zárókarakterek):

q'[a'b]' q'{a'b}' q'<a'b>' q'(a'b)'

Második alak (tetszőleges nyitó- és zárókarakterek):

q'Ma'bM' q'za'bz' q'!a'b!' q'#a'b#'

Hibás literál:

q'Ma'bM'M'

Az üres sztring ("), amely egyetlen karaktert sem tartalmaz, a PL/SQL szerint azonos a NULL-lal. A sztring literálok adattípusa CHAR.

Egyes sztring literálok tartalmazhatnak olyan karaktersorozatokat, amelyek más típusok értékeit reprezentálhatják. Például az '555' literál számmá, a '01-JAN-2002' dátummá alakítható.