Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Pl/sql -extensie SQL (tehnologie folosita de ORACLE)

sql



+ Font mai mare | - Font mai mic



Pl/sql -extensie SQL (tehnologie folosita de ORACLE)

permite comenzi de manipulare si interogare SQL in bloc



blocurile PL/SQL sunt procesate de motorul PL/SQL care poate fi rezident pe ORACLE SERVER /instrument de dezvoltare

tipurile de date din SQL pot fi folosite in PL/SQL

multe instrumente ORACLE(DEVOLOPER/2000) au propriul motor PL/SQL

Tipuri de blocuri PL/SQL:

bloc anonim (bloc anonim (fara nume), este declarat la punctul in aplicatie unde este executat)

triggere de aplicatii (DEVELOPER/2000)

triggere pe baza de date

functii/proceduri stocate

functii/proceduri de aplicatii

pachete de proceduri

Programarea in PL/SQL este modularizata.Un bloc PL/SQL are 3 componente:

DECLARE

variabile, cursori, exceptii

BEGIN

comenzi SQL

structuri de programare

EXCEPTION

actiuni ce se executa cand apare o exceptie, eroare

END;

blocul se termina cu (;)

se foloseste (/) pentru a lansa un bloc anonim in bufferul SQL

o eroare in PL/SQL este tratata ca o exceptie

Exemplu:

DECLARE

v_variabila varchar2(5);

BEGIN

SELECT coloana INTO variabila FROM tabela;

EXCEPTION

WHEN exceptie THEN actiune

END;

Blocuri Imbricate

BEGIN

<<eticheta bloc1>>

DECLARE

......

BEGIN

......

END bloc1;

END;

Subprograme (blocuri PL/SQL care au nume ), pot fi proceduri /functii. Se pot stoca la nivel de ORACLE SERVER( proceduri/functii stocate) sau de aplicatie (DEVELOPER/2000)

PROCEDURE nume_procedura

IS

BEGIN

[EXCEPTION]

END;

FUNCTION nume_functie

RETURN tip_data

IS

BEGIN

RETURN valoare

[EXCEPTION]

END;

Pachete de programe (grupeaza proceduri, functii)

Triggere pe baza de date( bloc PL/SQL asociat cu o tabela si lansat in executie cand are loc o comanda de manipulare)

Triggere de aplicatie (bloc PL/SQL asociat cu un eveniment din aplicatie, de exemplu deplasare mouse, apasarea unui buton )

VARIABILE

declararea si initializarea in zona declarativa

se pot initializa si in zona de executie

toate variabilele PL/SQL au un tip de data, restrictii si sir valid de valori

nume_variabila [CONSTANT] TIP_DATA [NO NULL] [:=|DEFAULT expresie]

constantele trebuie initializate

variabilele not null trebuie initializate

se foloseste urmatoarea conventie:

c_numeconstanta

v_nume

g_nume (variabila globala definita in zona de specificatii a pachetului de programe si valabila pentru toate subprogramele pachetului)

Exemple:

DECLARE

v_sal constant real:=50000;

v_datai date;

g_codf varchar2(5) not null:='R209';

v_datai :=to_date ('15-SEP-99','DD-MON-YY');

g_datai date default sysdate;

g_codsef number(4) default 7839;

BEGIN

SELECT coloana1 INTO v_datai FROM tabela;

SELECT pu*1.1 INTO v_punou FROM produse WHERE codp='D209';

END;

TIPURI DE VARIABILE

varchar2 (lung_max)

number (precizie,scala)

data

char (lung_max)

long [sir de caractere de lungime variabila 2GB]

boolean (true, false, null)

binary_integer (numereiintregi intre -2147483647 si 2147483647)

real , etc

Exemple:

v_functie varchar2(9);

v_numar binary_integer:=0;

v_totalsal number(9,2):=0;

v_datai data:=sysdate+7;

c_taxa constant number(3,2):=8.25;

v_valid boolean not null:=true;

ATRIBUTUL %TYPE

exemple:

v_denc clienti.denc%type;

v_stoc number(5);

v_stocmin v_stoc%type:=1000;

VARIABILE DE HOST (ALE APLICATIILOR GAZDA)

:host_variabila:=v_sal;

Sa se afiseze mesajul "BLOC PL/SQL"

variable g_mesaj varchar2(30)

begin

:g_mesaj:='BLOC PL/SQL';

end;

print g_mesaj

Sa se afiseze sirul de caractere "SEMINAR13" si subsirul "13"

Functiile SQL sunt valabile in PL/SQL (numerice, caracter, data, de conversie, alte functii). Nu sunt valabile (greatest, least, decode, avg, min, max, count, sum, stddev)

PL/SQL converteste tipurile de date dinamic (exemplu daca se da o valoare numerica la o variabila char)

Se pot imbrica blocuri.Zona de exceptie poate contine blocuri imbricate

Sa se calculeze suma a doua numere iar rezultatul sa se divida cu 3. Numerele se vor introduce de la tastatura

variable v_rezultat number

accept p_num1 prompt 'Introduceti primul numar:'

accept p_num2 prompt 'Introduceti al doilea numar:'

declare

v_num1 number(9,2):=&p_num1;

v_num2 number(9,2):=&p_num2;

begin

:v_rezultat:=(v_num1+v_num2)*3;

end;

print v_rezultat

Sa se afiseze salariul marit cu un procent. Salariul si procentul se dau de la tastatura

accept p_sal prompt 'Introduceti salariul:'

accept p_procent prompt 'Introduceti procentul:'

declare

v_sal number:=&p_sal;

v_procent number:=&p_procent;

begin

dbms_output.put_line(to_char(nvl(v_sal,0)*(1+nvl(v_procent,0)/100)));

end;

PL/SQL suporta toate comenzile din limbajul de manipulare si control al tranzactiilor

un bloc PL/SQL nu e o tranzactie. Commit/ Rollback/ Savepoint sunt independente de bloc dar pot sa apara in bloc

PL/SQL nu suporta comanzi DDL/DCL

se foloseste clauza INTO (SELECT) pentru a popula variabile PL/SQL sau variabile host

cererile trebuie sa intoarca un singur rand (altfel se genereaza o eroare)

comenzile SQL se termina cu (;)

Sa se incarce in doua variabile valorile pentru data incheierii si termen de livrare pentru un anumit contract si sa se afiseze . Codul contractului se da de la tastatura

accept p_cod prompt 'Introduceti codul contractului:'

declare

v_datai contracte.datai%type;

v_termen contracte.termen%type;

v_cod contracte.codc%type;

begin

select codc, datai, termen into v_cod, v_datai, v_termen from contracte where codc=&p_cod;

dbms_output.put_line ('Contractul '|| v_cod|| 's-a incheiat la:'|| v_datai ||'si are termen de livrare|| v_termen

end;

se pot folosi functii de grup in SELECT;

Sa se modifice valoarea unui contract .Codul contractului si valoarea cu care se modifica se da de la tastatura



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1078
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved