Instrucţiuni PL/SQL

O instrucţiune în PL/SQL se termină cu caracterul ";"

Comentariu
/* comentariu pe mai multe linii */
-- comentariu pe o linie
rem comentariu pe o linie
Instrucţiune
vidă
null;
Atribuire
variabila := expresie;
Pentru o expresie se pot folosi:
  • Operanzi: constante, variabile, coloane din tabele sau cursoare, valori ale funcţiilor sistem sau utilizator
  • Operatori
De control
IF conditie1 THEN
     instr1;
[ELSIF conditi2 THEN
     instr2;] ...
[ELSE instrn;]
END IF;
------------------------
LOOP 
   sir de instructiuni care se executa repetat
   Din sirul de instructiuni se poate iesi fortat cu EXIT [WHEN conditie];
END LOOP;
------------------------
WHILE conditie LOOP
   sir de instructiuni; 
   Din sirul de instructiuni se poate iesi fortat cu EXIT [WHEN conditie];
END LOOP;
------------------------
FOR variabila IN [REVERSE] val_min .. val_max LOOP
   instructiuni;
   Din sirul de instructiuni se poate iesi fortat cu EXIT [WHEN conditie];
END LOOP;
Diverse
exit;
return expresie;
apel de procedura;
eticheta instructiune; -- în faţa unei instrucţiuni poate apare o etichetă
GOTO eticheta; -- salt la o instrucţiune
etc.

Exemple pentru SQL*Plus sau iSQL*Plus:

-- Generare coduri ASCII
set serveroutput on

declare
   i number;
begin
   -- genereaza codurile ASCII cuprinse intre 32 si 255
   for i in 32..255 loop
     dbms_output.put_line((to_char(i,'000')) || ':' || chr(i) || '  ');
   end loop;
end;

-- generarea primei si ultimei zile din fiecare luna a anului 2015 (data si denumirea zilei)
set serveroutput on
declare
  i number;
  d1 date;
  d2 date;
  z1 varchar2(30);
  z2 varchar2(30);
begin
  for i in 1..12 loop
    d1:=to_date('01.' || to_char(i,'00') || '.2015','dd.mm.yyyy');
    d2:=last_day(d1);
    z1:=to_char(d1,'dd.mm.yyyy') || ' (' || to_char(d1,'Day') || ')';
    z2:=to_char(d2,'dd.mm.yyyy') || ' (' || to_char(d2,'Day') || ')';
    dbms_output.put_line(z1 || ' - ' || z2);
  end loop;
end;