Vaicājumu valoda SQL ir ceturtās paaudzes. Tas nozīmē, ka ar tās palīdzību tiek definēts kādi dati jāiegūst ņemot vērā kādus meklēšanas noteikumus. Kā šos datus iegūt netiek noteikts. Ja nepieciešams papildus definēt izpildes procedūras, tad tiek lietots SQL valodas procedurālais paplašinājums – valoda PL/SQL. Tā ir trešās paaudzes procedurālā valoda.
Jebkurš objekts sastāv no divām daļām :
1.Objekta atribūti. Tie ir objektu raksturojošie dati, kuru apraksts atbilst parasto datu lauku datu aprakstam relāciju datu bāzē. Šo datu vērtību kopā katra brīdi raksturo tekošo objekta stāvokli.
2.Objekta metodes. Šajā daļā apraksta metodes (funkcijas un procedūras) darbam ar objektu. Šīs metodes var gan izmainīt objektu atribūtus (objekta stāvokli), gan vienkārši operēt ar objekta datiem (izvadīt tos uz ekrāna, salīdzināt, utt.).
Oracle datu bāzes objekts tiek definēts ar SQL izteikumu CREATE TYPE … AS OBJECT. Tā sintakse ir sekojoša :
CREATE [OR REPLACE] TYPE shēma.tips AS OBJECT
(atribūts datu_tips,
…
MAP MEMBER FUNCTION funkcijas_apraksts vai
ORDER MEMBER FUNCTION funkcijas_apraksts,
MEMBER funkcijas_vai_proceduras_apraksts,
…
PRAGMA RESTRICT_REFERENCES (metodes_nosaukums, ierobežojumi),
… );
Šajā aprakstā vispirms tiek definēti objekta atribūti (datu lauki), tālāk aiz MAP vai ORDER atslēgvārda seko objektu šķirošanas metodes apraksts, tiek aprakstītas visas objekta funkcijas un procedūras (aiz vārda MEMBER) un ierobežojumi metožu izmantošanai SQL metodēs (aiz PRAGMA RESTRICT_REFERENCES; šeit var uzstādīt ierobežojumus, kā piemēram, nevar izmainīt datu struktūras (WNDS), moduļu datus(RNPS), utt.).
PL/SQL bloki
Valodas PL/SQL pamatvienība ir bloks. No blokiem sastāv visas PL/SQL programmas. Bloki var atrasties viens aiz otra vai viens bloks var tikt iekļauts citā. Valodas PL/SQL bloka struktūra ir sekojoša:
DECLARE
mainīgo un kursoru definēšana
BEGIN
izpildāmās darbības (operatori, procedūras, funkcijas un SQL operatori)
EXCEPTION
īpašo situāciju apstrāde
END;…