Funcţii Oracle în instrucţiuni SQL
Funcţiile sistem Oracle pot fi clasificate în diferite clase, după diverse criterii, de exemplu:
- pentru gestiunea şirurilor de caractere:
rezultatul este de tip şir de caractere:
- LOWER(sir)- transformă caracterele din argument în litere mici;
- UPPER(sir) - transformă caracterele din argument în majuscule;
- INITCAP(sir) - transformă primul caracter din fiecare cuvânt în majusculă;
- CONCAT(sir1,sir2) - concatenează cele două şiruri din argument (echivalent cu operatorul de concatenare "||");
- SUBSTR(sir,m[,n]) - extrage din 'sir' un subsir de lungime n începând de la pozitia m (primul caracter are pozitia 1);
- LENGTH(sir) - returnează lungimea şirului din argument;
- INSTR(sir1,sir2[,n[,m]]) - returnează poziţia celei de-a m-a apariţii a lui sir2 în sir1 începând cu pozitia n
(implicit: m=n=1). Dacă sir2 nu se găseşte, atunci valoarea dată de funcţie este 0;
- REPLACE(sir,a[,b]) - înlocuieşte în 'sir' subşirul a cu subşirul b. Dacă lipseşte b, atunci se şterge a;
- TRANSLATE(sir, sir1,sir2) - înlocuieşte în 'sir' fiecare apariţie a unui caracter din sir1 cu caracterul aflat pe aceeaşi pozitie in sir2;
- LTRIM(sir) / RTRIM(sir) - şterge spaţiile din stânga şirului de caractere, respectiv din dreapta lui;
- TRIM(LEADING|TRAILING|BOTH c FROM sir) - elimină apariţiile unui caracter de la începutul şi/sau sfârşitul uni şir
- LPAD(sir1,n,sir2) / RPAD(sir1,n,sir2) - sir1 este completat la stânga, respectiv la dreapta, până la lungimea n, prin sir2;
- SOUNDEX(sir) - dă reprezentarea fonetică a şirului de caractere din argument.
- aritmetice: argumentele şi valorile sunt numerice:
- ABS(n) - valoarea absolută a argumentului;
- ACOS(n) - evaluează funcţia arccos;
- ASIN(n) - evaluează funcţia arcsin;
- ATAN(n) - evaluează funcţia arctg;
- ATAN2(n,m) - evaluează funcţia arctg(m/n);
- CEIL(n) - cel mai mic întreg mai mare sau egal cu argumentul;
- COS(n) - evaluează funcţia cos;
- COSH(n) - evaluează funcţia cosh;
- EXP(x) - evaluează funcţia exponentială;
- FLOOR(n) - cel mai mare întreg mai mic sau egal cu argumentul;
- GREATEST(m,n) - cel mai mare dintre numerele m şi n;
- LEAST(m,n) - cel mai mic dintre numerele m şi n;
- LN(x) - evaluează funcţia ln(x)(logaritm natural);
- LOG(b,n) - evaluează functia log din n în baza b;
- MOD(m,n) - restul împărţirii lui m prin n;
- POWER(m,n) - evaluează funcţia putere (m la puterea n);
- ROUND(n[,m]) - numărul n este rotunjit la m poziţii zecimale, implicit m=0;
- SIGN(n) - evaluează funcţia sign(n) (semnul argumentului);
- SIN(n) - evaluează funcţia sin din argument (argumentul este în radiani);
- SINH(n) - evaluează functia sinh (argumentul este în radiani);
- SQRT(m) - rădăcină pătrată din m (dacă m<0, atunci valoarea este null);
- TRUNC(n[,m]) - numărul n este trunchiat la m poziţii zecimale, implicit m=0;
- pentru gestiunea datelor calendaristice:
- SYSDATE - data şi timpul curent
- MONTHS_BETWEEN(data1, data2) - numărul de luni dintre două date calendaristice
- ADD_MONTHS(data, nr_luni) - adaugă un număr de luni la o dată
- NEXT_DAY(data, denumire_zi) - ziua următoare cu denumirea specificată care urmează datei din primul argument
- LAST_DAY(data) - ultima zi a lunii
- ROUND(data, 'format') - rotunjeste o dată calendaristică
- TRUNC(data [, 'format']) - trunchiază o dată calendaristică
- CURRENT_DATE - data curentă
- EXTRACT(componenta FROM expresie_datatimp) - extrage o componentă
(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND) dintr-o valoare dată-timp
- de conversie:
- TO_CHAR(data, 'format') - converteşte date calendaristice în şiruri de caractere (de tip VARCHAR2), conform unui format 'format'. Formatul
va preciza componenta din data calendaristică şi timp ce va fi furnizată de funcţie:
- SS - Secunda (0-59)
- SSSSS - Secunda din zi (0-86399)
- MI - Minut (0-59)
- HH - Ora (0-12)
- HH24 - Ora (0-23)
- DAY - Denumirea zilei din săptămână (SUNDAY-SATURDAY)
- DY - Abreviere la primele 3 litere din denumirea zilei săptămânii (SUN-SAT)
- D - Ziua din săptămână (1-7)
- DD - Ziua din luna (1-31)
- DDD - Ziua din an (1-366)
- MM - Numărul lunii (1-12)
- MON - Abreviere la primele 3 litere din denumirea lunii (JAN-DEC)
- MONTH - Numele complet al lunii (JANUARY-DECEMBER)
- YY - Ultimele două cifre ale anului
- YYYY - Anul scris cu cifre
- YEAR - Anul în litere
- CC - Secolul de exemplu
- Q - Numărul trimestrului (1-4)
- W - Săptămâna din cadrul lunii (1-5)
- WW - Săptămâna din cadrul anului (1-52)
- alte caractere - sunt reproduse în rezultat
- TO_CHAR(expn, 'format') - formatează valori numerice conform unui format. In format pot apare caracterele:
- 9 - Reprezintă o cifră din valoarea primului argument
- 0 - Reprezintă o cifră şi fortează afişarea cifrei zero dacă poziţia corespunzătoare este un zero nesemnificativ
- $ - Pune semnul dolar
- L - Pune simbolul monetar local
- . - Extrage punctul zecimal
- , - Extrage separatorul de zone numerice (de exemplu mii)
- TO_NUMBER(char) - converteşte un şir de caractere la un număr
- TO_DATE(char [, 'format']) - converteşte un şir de caractere la o dată calendaristică şi timp.
Interpretarea caracterelor din primul argument se face conform unui format.
- diverse:
- NVL(e1,e2) - dacă e1 este null atunci funcţia dă e2, în caz contrar (e1 <> null), funcţia dă e1
- COALESCE (e1, e2, ...en) - extensie a funcţiei NLV, se va da prima valoare <> null
- NVL2(expresie, e1,e2) - dacă expresia este null atunci funcţia da e2, în caz contrar funcţia dă e1.
- DECODE(exp, val1, rez1, [val2, rez2]... [implicit]) - are efectul unei selecţii multiple. Dacă exp are val1, atunci se
va da rez1, altfel se folosesc analog perechi (val2, rez2).
Dacă nici una din valori nu se obţine pentru exp, rezultatul va fi valoarea argumentului implicit
- NULLIF(e1, e2) - compară două expresii. Dacă ele sunt egale, se va da valoarea null, altfel (ele nu sunt egale), se va returna prima expresie
- ASCII(char) - dă codul ASCII pentru un caracter
- CHR(n) - dă caracterul cu codul ASCII precizat
- UID - returnează id-ul utilizatorului curent
- USER - returnează numele utilizatorului curent