Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Functii Oracle

Oracle


Functii Oracle

Ce sunt functiile?

Functiile sunt operatii predefinite care manipuleaza date si returneaza un rezultat. Functiile pot genera doua tipuri de date de iesire. Primul tip de date de iesire ii reprezinta datele de intrare dupa manipularea acestora, iar la doilea tip de date de iesire va furnizeaza informatii în legatura cu datele de intrare. De exemplu, o functie poate converti la majuscule toate caracterele sirului de intrare; alta functie poate retuma numarul de caractere din sinii de intrare.



Exista doua tipuri de functie:

Functii mono-linie

Functii multi-linie sau de grup

Deosebirea dintre aceste doua tipuri de functii este data de numarul de linii asupra carora actioneaza. Dupa cum sugereaza numele, o functie mono-linie returneaza o singura linie pentru fiecare linie a unui tabel sau a unei vederi interogate. Functiile multi-linie sau de grup returneaza o singura linie pentru un grup de linii interogate.

Atunci când creati o functie creati un obiect Oracle de sine statator care s 23523e43x e gaseste în schema dumneavoastra. Functiile sunt asemanatoare operatorilor, cu exceptia faptului ca primele pot actiona asupra unor argumente multiple.

De ce se folosesc functiile?

Functiile sunt create pentru a rezolva anumite probleme sau pentru a efectua un set de sarcini. Functiile sunt create pentru a gestiona prelucrarile repetitive cum ar fi calcularea vânzarilor medii lunare.

Functiile va ofera avantaje în urmatoarele domenii:

Performanta

Alocarea memoriei

Integritate

Dezvoltarea aplicatiilor

Performantele serverului cresc deoarece forma compilata a functiei este oricând disponibila bazei de date. Nu este necesara compilarea functiilor înainte de executarea lor. O crestere suplimentara a performantelor se datoreaza reducerii traficului în retea deoarece functiile se afla deja stocate în memorie. Atunci când utilizeaza functii, aplicatia nu trebuie sa transmita instructiuni SQL sau pachete PL/SQL prin intermediul retelei. In sfârsit, daca functia sa gaseste deja în zona globala a sistemului (SGA), programul Oracle nu trebuie sa o citesca de pe disc el executa imediat copia existenta în zona SGA.

Prin utilizarea functiilor se îmbunatateste alocarea memoriei deoarece functiile beneficiaza de caracteristicile mediului Oracle de partajare a memoriei. Aceasta înseamna ca este suficient sa fie încarcata în memorie o singura copie a functiei în vederea executarii ei de mai multi utilizatori.

Functiile îmbunatatesc integritatea si coerenta aplicatiilor dumneavoastra. Datorita faptului ca toti programatorii unei echipe de proiectare folosesc acelasi set de functii, codificarea devine mai coerenta si se reduce probabilitatea de aparitie a greselilor de codificare.

Prin conceperea aplicatiilor pe baza unui set unitar de functii se evita codificarea redundanta si creste productivitatea dezvoltarii de aplicatii.

Cum se folosesc functiile

Paragrafele care urmeaza descriu fiecare functie, precum si sintaxa generala a lor.

Sintaxa generala a functiilor este urmatoarea:

functie (argument1, argument2, ...)

Sunt prezentate pe rând cele doua categorii: functii mono-linie si functiide grup.

Functii mono-linie

Dupa cum sugereaza numele, functiile mono-linie returneaza un singur rezultat pentru fiecare linie a unui tabel sau'a unei vederi interogate.

Functii caracter

Functiile caracter primesc ca date de intrare siruri de caractere si returneaza valori de tip caracter. In cazul functiilor care returneaza date de tip varchar2, lungimea maxima a datelor de iesire este de 200 octeti; în cazul functiilor care returneaza date de tip char, lungimea maxima a datelor de iesire este de 255 octeti. Daca lungimea valorii returnate depaseste aceste limite, programul Oracle returneaza o valoare trunchiata fara a genera d eroare.

ASCII

Returneaza echivalentul zecimal al unui caracter ASCII

Sintaxa:

ascii(char)

Exemplu

select ascii('B') from dual;

Date de iesire:

ascii('B')

CHR

Returneaza caracterul ASCII corespunzator valorii întregi furnizate ca argument. De exemplu, echivalentul ASCII al literei K este 75.

Sintaxa:

CHR(integer)

Exemplu:

select chr(75) from dual;

Date de iesire:

C

K

CONCAT

Returneaza rezultatul concatenarii expresiei 1 cu expresia 2. Aceasta functie este echivalenta cu utilizarea comenzii II în instructiunea SQL.

Sintaxa:

concat(sirl, sir2)

Exemplu:

select concat (regiune, stat) from lista_filiale;

Date de iesire:

concat (regiune, stat)

midwestohio

LENGTH

Returneaza numarul de caractere (lungimea) al sirului de intrare.

Sintaxa:

length(char)

Exemplu:

select length('ABCDEFGHIJ') from dual;

Date de iesire:

LENGTH('ABCDEFGHIJ' )

LOWER

Returneaza sirul de intrare dupa trecerea tuturor caracterelor la litere mici.

Sintaxa:

lower(char)

Exemplu:

select lower('MISSISSIPPI1) from dual;

Date de iesire:

LOWER('MISSISSIPPI') mississippi

LPAD

Returneaza sirul de intrare în stânga caruia este adaugata secventa de caractere din cel de-al treilea argument. Aceasta functie are trei argumente: primul este sirul de intrare; al doilea este lungimea maxima a valorii returnate; iar al treilea este secventa de caractere care va fi adaugata.

Sintaxa:

lpad(sir de intrare, lungime, secventa de completare)

Exemplu:

select lpad('AVERTISMENT: ',20,'***** ') from dual;

Date de iesire:

LPAD('AVERTISMENT: ',20,')

***** *****AVERTISMENT:

LTRIM

Returneaza sirul rezultat prin eliminarea din sirul de intrare a tuturor caracterelor pâna la întâlnirea unui caracter din setul (sirul) specificat de caractere.

Sintaxa:

ltrim(sir intrare, set caractere)

Exemplu:

select ltrim('chicago','ic') from dual;

Date de iesire:

LTRIM(

chicago

REPLACE

Returneaza sirul de intrare în care fiecare aparitie a sirului de cautare este înlocuita cu sirul de nlocuire.

Sintaxa:

replace(sir intrare,sir cautare,sir înlocuire)

Exemplu:

select replace('Pete','Pe','123') from dual;

Date de iesire:

REPLA

123TE

RPAD

Adauga valorile furnizate de al treilea argument la dreapta sirului de intrare.

Sintaxa:

rpad(sir de intrare, lungime, secventa de completare)

Exemplu:

select rpad(tom',6, '!") FROM DUAL;

Date de iesire:

RPAD(

tom111

RTRIM

Returneaza sirul rezultat prin eliminarea din sirul de intrare a caracterelor care urmeaza dupa ultimul caracter care nu este inclus în setul de caractere specificat de al doilea argument.

Sintaxa:

rtrim(sir intrare, set caractere)

Exemplu:

select rtrim('Tomlll','l') from dual;

Date de iesire:

RTR

Tom

SUBSTR

Returneaza o portiune a sirului de intrare care începe în pozitia specificata de al doilea argument si are lungimea precizata de al treilea argument.

Sintaxa:

Substr(sir intrare,pozitie inceput,lungime)

Exemplu:

select substr('ABCDEFGH',5,3) fromdual;

Date de iesire:

SUB

EFG

UPPER

Returneaza sirul de intrare dupa trecerea tuturor caracterelor'la majuscule.

Sintaxa:

upper(char)

Exemplu:

select upper('cincinnati') From dual;

Date de iesire:

UPPER('CIN

CINCINNATI

Functii numerice

Functiile numerice primesc date de intrare numerice si returneaza o valoare numerica.

ABS

Returneaza valoarea absoluta a valorii de intrare.

Sintaxa:

abs(n)

Exemplu:

select abs(3) from dual;

Date de iesire:

ABS(3)

POWER

Returneaza valoarea de intrare ridicata la puterea n.

Sintaxa:

power(valoare,n)

Exemplu:

select power(4,2) from dual;

Date de iesire:

POWER(4,2)

ROUND

Rotunjeste valoarea de intrare la numarul specificat de pozitii zecimale.

Sintaxa:

round(valoare intrare,precizie)

Exemplu:

select round(123.456,2) from dual;

Date de iesire:

ROUND(123.456,2)

TRUNC

Trunchiaza valoarea de intrare la numarul specificat de pozitii zecimale.

Sintaxa:

trunc(valoare intrare,precizie)

Exemplu:

select trunc(213.456,2) FROM DUAL;

Date de iesire:

TRUNC(213.456,2)

Functii de tip data calendaristica

Aceste functii primesc argumente de tip data calendaristica (date).

ADD_MONTHS

Returneaza o data reprezentând data specificata plus numarul specificat de luni. în exemplul urmator, data curenta este 1 Ianuarie 1995.

Sintaxa:

add_months(data, numar de luni)

Exemplu:

select add_months(sysdate,6) FROM DUAL;

Date de iesire:

ADD_MONTH 1-JUL-95

LAST_DAY

Returneaza ultima zi a lunii specificate.

Sintaxa:

last_day(data)

Exemplu:

select last_day('1-may-95') FROM DUAL;

Date de iesire:

LAST_DAY(

31-MAY-95

MONTHS_BETWEEN

Returneaza numarul de luni la care data2 precede data1.

Sintaxa:

months_between(datai,data2)

Exemplu:

select months_between(fl-MAR-951,'l-JAN-951) from dual;

Date de iesire:

MONTHS_BETWEEN('1-MAR-951,'1-JAN-95')

SYSDATE

Returneaza data si ora curenta ale sistemului. Aceasta functie nu necesita argumente.

Sintaxa:

sysdate

Exemplu:

select sysdate from dual;

Date de iesire:

SYSDATE 13-AUG-95

Functii de conversie

Functiile de conversie convertesc valorile de intrare dintr un tip de data în altul.

TO_CHAR

Converteste o data sau un numar într un sir de caractere

Sintaxa:

to_char(intrare,format)

Exemplu:

select to_char(SYSDATE,'mm/dd/yy') from dual;

Date de iesire:

TO_CHAR(SYSDATE,'MM/DD/YY')

TO_DATE

Converteste o valoare numerica sau de tip caracter la tipul date

Sintaxa:

to_date(sir,format)

Exemplu:

select to_date('04/21/94','MM/DD/YY') from dual;

Date de iesire:

TO_DATE('

21-APR-94

TO_NUMBER

Converteste un sir de caractere într un format numeric

Sintaxa:

to_number(sir caractere,format)

Exemplu:

select to_number('1234.56') FROM DUAL;

Date de iesire:

TO_NUMBER('1234.56')

Alte functii mono-linie

Exista mai multe functii care nu se încadreaza în nici una dintre gruparile anterioare.

DUMP

Returneaza o valoare de tip varchar2 care contine tipul de data, lungimea si reprezentarea interna a expresiei. Printre argumentele de intrare se numara si codul de format al valorii retumate. Pentru specificarea formatului dorit pentru valoarea returnata, se folosesc codurile urmatoare:

Returneaza notatia octala

Returneaza notatia zecimala

Returneaza notatia hexazecimala

Returneaza câte un caracter

Sintaxa:

Dump(sir, format, pozitie început, pozitie sfârsit)

Exemplu:

select dump('CITY',16,1,8) from dual;

Date de iesire:

DUMP('city',16,1,8)

Typ=96 Len=4: 63,69,74,79

GREATEST

Returneaza cea mai mare valoare dintr-o lista de valori de intrare.

Sintaxa:

greatest(valoare1,valoare2,...)

Exemplu:

select greatest('Tom', "Tim', 'Terry') FROM DUAL;

Date de iesire:

GREATEST

Tom

LEAST

Returneaza cea mai mica valoare dintr-o lista de valori de intrare.

Sintaxa:

least(valoare1,valoare2,...)

Exemplu:

select least('Tom','Tim','Terry') from dual;

Date de iesire:

LEAST

Terry

USER

Returneaza numele utilizatorului curent al bazei de date Oracle. Aceasta functie nu necesita nici un argument.

Sintaxa:

User

Exemplu:

select user from dual;

Date de iesire:

USER ops$user_1

Functii de grup

Functiile de grup retumeaza o singura valoare pentru un grup de linii interogate.

AVG

Returneaza valoarea medie pentru un grup de linii.

Sintaxa:

avg(valoare)

Exemplu:

select avg(vânzari lunare) from comenzi;

Date de iesire:

AVG(vanzari_lunare)

COUNT

Returneaza numarul de linii dintr-o interogare în functia count, puteti utiliza urmatorii specificatori:

* Indica returnarea tuturor liniilor interogarii

distinct

Returneaza numarul de linii distincte identificate în interogare

Sintaxa:

Count

Exemplu:

select count(*) from comenzi;

Date de iesire:

COUNT(*)

MAX

Returneaza valoarea maxima a expresiei.

Sintaxa:

max(expresie)

Exemplu:

select max(vanzari_lunare) from comenzi;

Date de iesire:

MAX(vanzari_lunare)

MIN

Returneaza valoarea minima a expresiei.

Sintaxa:

min(expresie)

Exemplu:

select min(vanzari_lunare) FROM comenzi;

Date de iesire:

MIN(vanzari_lunare)

SUM

Returneaza suma valorilor expresiei.

Sintaxa:

sum(expresie)

Exemplu:

select sum(vanzari_lunare) from comenzi;

Date de iesire:

SUM(vanzari_lunare)

Rezumat

Functiile sunt rutine predefinite care manipuleaza date si returneaza o valoare. Functiile retumeaza o valoare care fie descrie datele de intrare, fie reprezinta rezultatul manipularii datelor de intrare.

Utilizarea functiilor prezinta numeroase avantaje. Printre acestea se numara si îmbunatatirea performantelor serverului Oracle, îmbunatatirea alocarii memoriei, scaderea timpului necesar dezvoltarii aplicatiilor si sporirea integritatii bazei de date.

Functiile se utilizeaza în instructiuni SQL, pentru satisfacerea unor nevoi de programare specifice. Functiile mono-linie returneaza un rezultat pentru fiecare linie a unei interogari, în timp ce functiile de grup returneaza un singur rezultat pentru un grup de linii ale unei interogari.


Document Info


Accesari: 5813
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )