Un tip de dată precizează o mulţime de valori şi de operaţii ce se pot efectua cu acestea.
Unele tipuri de dată au şi subtipuri (o submulţime de valori din mulţimea
tipului de bază şi aceleaşi operaţii ca la tipul de bază).
Tipul unei variabile definită anterior: variabila%TYPE
Tipul unei coloane dintr-un tabel: [schema.]table.coloana%TYPE
Tipul unei înregistrări dintr-un tabel sau dintr-un cursor: [schema.]{tabel | cursor}%ROWTYPE
Definirea unui subtip utilizator
SUBTYPE nume_subtip IS tip_de_baza;
Prin tip_de_bază se înţelege un tip scalar din PL/SQL, un tip utilizator, sau unul din tipurile %TYPE, %ROWTYPE. Exemple din pachetul sistem standard.sql
Definirea unei înregistrări
TYPE nume_tip IS RECORD (def_componenta [, def_componenta] ...);
unde "def_componenta" este de forma: nume_componenta tip [[NOT NULL] := expresie]
O componentă dintr-o înregistrare se poate folosi prin calificare cu numele înregistrării: inregistrare.componenta. Obs. Pentru tipul unei componente se poate folosi şi o înregistrare definită anterior.
Exemplu:
declare
type ttel is record (
fix string(10),
mobil string(10)
);
type tadresa is record(
localitate varchar2(50),
strada varchar2(50),
numar char(5),
telefon ttel;
adresa tadresa;
begin
adresa.telefon.fix:='0264123456';
end;
Expresii
Operanzi: constante, variabile, coloane din tabele sau cursoare, valori ale funcţiilor utilizator sau sistem Operatori: aritmetici (+, -, *, /), concatenare (||), relaţionali (=, <, <=, >, >=), logici (not, and, or)
In expresii se pot folosi şi operatorii:
IS NULL(expresie) - care are valoarea de true dacă expresia argument este null, şi false în caz contrar
expresie_sir_caractere LIKE sablon
expresie BETWEEN valmin AND valmax
expresie IN (lista_de_valori)
Conversii
Explicite: prin folosirea unor funcţii de conversie (unele funcţii sistem se poate consulta acest
document)
Implite: la folosirea unor instrucţiuni de atribuire