A PL/SQL program szövegében a következő lexikális egységek használhatók:
elhatárolók,
szimbolikus nevek,
megjegyzések,
literálok.
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ó.