Sunteți pe pagina 1din 5

Probleme de rezolvat Seciunea 1 i Seciunea 2

S1L3 EE

Scriei i executai un bloc anonim n care:


declarai o variabil de tip DATE creia i atribuii ca valoare, data de peste 6 luni.
afiai mesajul In six months, the date will be: <inserai data> Folosii funcia
ADD_MONTHS

DECLARE
V_DATA DATE:=ADD_MONTHS(SYSDATE,6);
BEGIN
DBMS_OUTPUT.PUT_LINE ('DATA PESTE 6 LUNI:'||V_DATA);
END;

S2L1 E4

A. Creai urmtoarea funcie

CREATE FUNCTION num_characters (p_string IN VARCHAR2)


RETURN INTEGER AS
v_num_characters INTEGER;
BEGIN
SELECT LENGTH(p_string) INTO v_num_characters
FROM dual;
RETURN v_num_characters;
END;

B. Creai i executai urmtorul bloc anonim:

DECLARE
v_length_of_string INTEGER;
BEGIN
v_length_of_string := num_characters('Oracle Corporation');
DBMS_OUTPUT.PUT_LINE(v_length_of_string);
END;

S2L1 E5

Scriei un bloc anonim care folosete numele unei ri (country_name) ca valoare de intrare i
afieaz cea mai mare i cea mai mic nlime (highest_elevation i lowest_elevation) pentru ara
respectiv. Folosii tabela countries. Executai blocul de 3 ori pentru rile: United States of
America, French Republic i Japan.

1
se definesc 3 variabile: una pentru numele rii care poate fi iniializat cu numele primei
ri, una pentru cea mai mic nlime i una pentru cea mai mare nlime;
se scrie instruciunea SELECT care selecteaz cele dou nlimi pentru ara definit;
se afieaz mesajul cu cele dou nlimi obinute;

DECLARE
V_TARA COUNTRIES.COUNTRY_NAME%TYPE:='Japan";
V_HE COUNTRIES.HIGHEST_ELEVATION%TYPE;
V_LE COUNTRIES.LOWEST_ELEVATION%TYPE;
BEGIN
SELECT HIGHEST_ELEVATION,LOWEST_ELEVATION INTO V_HE,V_LE
FROM COUNTRIES WHERE COUNTRY_NAME=V_TARA;
DBMS_OUTPUT.PUT_LINE('HE ESTE:'||V_HE);
DBMS_OUTPUT.PUT_LINE('LE ESTE:'||V_LE);
END;

S2L4 E5

Creai urmtorul bloc anonim:

BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World');
END;

A. Adugai la blocul de mai sus declaraiile urmtoarelor variabile:


o variabil numit TODAY de tip DATE. Iniializai-o cu data curent (SYSDATE)
o variabil numit TOMORROW cu acelaii tip ca variabila TODAY. Folosii atributul
%TYPE.

B. n seciunea executabil atribuii variabilei TOMORROW data de mine folosind o


expresie care calculeaz data de mine (adugai 1 la variabila TODAY). Afiai valorile
variabilelor TODAY i TOMORROW dup mesajul Hello World.
DECLARE
V_TODAY DATE:=SYSDATE;
V_TOMORROW V_TODAY%TYPE;
BEGIN
V_TOMORROW:=V_TODAY+1;
DBMS_OUTPUT.PUT_LINE('HELLO WORLD: '||V_TODAY);
DBMS_OUTPUT.PUT_LINE('HELLO WORLD: '||V_TOMORROW);
END;

SAU

DECLARE
V_TODAY DATE:=SYSDATE;
V_TOMORROW V_TODAY%TYPE;
BEGIN
V_TOMORROW:=V_TODAY+1;
DBMS_OUTPUT.PUT_LINE('HELLO WORLD: '||V_TOMORROW);
END;

2
S2L5 E1
Ce va afia urmtorul cod?

DECLARE
x VARCHAR2(20);
BEGIN
x:= '123' + '456' ;
DBMS_OUTPUT.PUT_LINE(x);
END;

Executai codul de mai sus i explicai rezultatul.

S2L5 E2
Scriei un bloc anonim care atribuie numele vostru complet unei variabile i afieaz numrul
total de caractere ale acestuia.

S2L5 E3
Scriei un bloc anonim care afieaz data curent n formatul Month dd, yyyy. Memorai data
ntr-o variabil de tip DATE cu identificatorul my_date. Definii o alt variabil tot de tip DATE
cu identificatorul v_last_day. Atribuii variabilei v_last_day ultima zi a lunii curente. Afiai
valoarea variabilei v_last_day.

S2L5 E4
Modificai programul creat la exerciiul S2L5 E3 prin adugarea a 45 de zile la data curent i
apoi calculai i afiai numrul de luni dintre cele dou date. Folosii funcia
MONTHS_BETWEEN.

S2L5 E6
Ce va afia urmtorul cod? Explicai rspunsul.

DECLARE
v_number NUMBER;
v_boolean BOOLEAN;
BEGIN
v_number := 25;
v_boolean := NOT(v_number > 30);
END;

Executai codul i verificati-v raspunsul.

S2L6 E1
Determinai valorile variabilelor din urmtorul cod conform domeniului i vizibilitii acestora:

DECLARE
weight NUMBER(3) := 600;
message VARCHAR2(255) := 'Product 10012';
BEGIN

3
DECLARE
weight NUMBER(3) := 1;
message VARCHAR2(255) := 'Product 11001';
new_locn VARCHAR2(50) := 'Europe';
BEGIN
weight := weight + 1;
new_locn := 'Western ' || new_locn;
-- Position 1 --
END;
weight := weight + 1;
message := message || ' is in stock';
-- Position 2 --
END;

A. Valoarea variabilei weight la poziia 1 este:

B. Valoarea variabilei new_locn la poziia 1este:

C. Valoarea pentru weight la poziia 2 este:

D.valoarea variabilei message la poziia 2 este:

E. Valoarea variabilei new_locn la poziia 2 este:

Completai codul i executai-l astfel nct s putei verifica rspunsurile.

S2L6 E2
Introducei i executai urmtorul bloc PL/SQL care conine blocuri imbricate. Rspundei la
ntrebri.

DECLARE
v_employee_id employees.employee_id%TYPE;
v_job employees.job_id%TYPE;
BEGIN
SELECT employee_id, job_id INTO v_employee_id, v_job
FROM employees
WHERE employee_id = 100;
DECLARE
v_employee_id employees.employee_id%TYPE;
v_job employees.job_id%TYPE;
BEGIN
SELECT employee_id, job_id INTO v_employee_id, v_job
FROM employees
WHERE employee_id = 103;
DBMS_OUTPUT.PUT_LINE(v_employee_id|| ' is a '||v_job);
END;
DBMS_OUTPUT.PUT_LINE(v_employee_id|| ' is a '||v_job);
END;

A. De ce blocul interior afieaz pentru job_id valoarea 103 i nu 100?

4
B. De ce blocul exterior afieaz pentru job_id valoarea 100 i nu 103?

C. Modificai codul pentru a afia id-ul angajatului 100 n blocul interior. Folosii
etichetele pentru blocuri.

S2L7 E1
Executai codul de mai jos. Se va executa corect dac l-ai introdus corect, dar conine cteva
nclcri ale bunelor practici n programare.

DECLARE
myvar1 VARCHAR2(20);
myvar2 number(4);
BEGIN
SELECT country_name INTO myvar1
FROM wf_countries WHERE country_id = 1246;
myvar2 :=
'1234';
MYVAR2 := myvar2 * 2;
DBMS_OUTPUT.PUT_LINE(myvar1);
End;

A. Modificai blocul folosind regulile de bune practici i re-executai blocul.

B. Codul modificat ar trebui s conin urmtoarele reguli: conversii explicite, identificatori


sugestivi pentru variabile, folosirea atributului %TYPE, regulile de scriere cu litere mici i litere
mari, comentarea codului i identarea codului.

Exerciii suplimentare
1. Scriei un bloc anonim n care v calculai i afiai vrsta i numrul de zile pn la data
de natere (aniversarea voastr);
2. Modificai exerciiul S2L1 E5 astfel nct s afiai i diferena de nivel pentru fiecare
dintre cele 3 ri.
3. Modificai codul de la exerciiul 2 astfel nct s calculai i s afiai diferena de nivel
ntr-un bloc interior.
4. Modificai codul de la exerciiul 3 astfel nct s afiai diferena de nivel, dup afiarea
nlimii minime i maxime. n cte moduri putei face acest lucru?

S-ar putea să vă placă și

  • Șomajul Este Termenul Folosit În Cazul Lipsei Ocupației Plătite
    Șomajul Este Termenul Folosit În Cazul Lipsei Ocupației Plătite
    Document1 pagină
    Șomajul Este Termenul Folosit În Cazul Lipsei Ocupației Plătite
    Cristina Antohi
    Încă nu există evaluări
  • Usturoi Tratament
    Usturoi Tratament
    Document1 pagină
    Usturoi Tratament
    Cristina Antohi
    Încă nu există evaluări
  • Utilizarea Tablourilor În PHP
    Utilizarea Tablourilor În PHP
    Document26 pagini
    Utilizarea Tablourilor În PHP
    Cristina Antohi
    Încă nu există evaluări
  • Lucrul Cu Sesiuni de Utilizator
    Lucrul Cu Sesiuni de Utilizator
    Document30 pagini
    Lucrul Cu Sesiuni de Utilizator
    Cristina Antohi
    Încă nu există evaluări
  • Laborator1 SOasc
    Laborator1 SOasc
    Document5 pagini
    Laborator1 SOasc
    Cristina Antohi
    Încă nu există evaluări
  • Serbare Craciun
    Serbare Craciun
    Document4 pagini
    Serbare Craciun
    Cristina Antohi
    Încă nu există evaluări
  • Orar FEAA 2017 2018 Semestrul II
    Orar FEAA 2017 2018 Semestrul II
    Document17 pagini
    Orar FEAA 2017 2018 Semestrul II
    Cristina Antohi
    Încă nu există evaluări
  • 3
    3
    Document51 pagini
    3
    Cristina Antohi
    Încă nu există evaluări
  • Teste Grila Baze de Date
    Teste Grila Baze de Date
    Document8 pagini
    Teste Grila Baze de Date
    gabiand
    Încă nu există evaluări
  • Versuri Cantece de Iarna
    Versuri Cantece de Iarna
    Document4 pagini
    Versuri Cantece de Iarna
    Iosif L
    Încă nu există evaluări
  • Primul Document
    Primul Document
    Document9 pagini
    Primul Document
    Cristina Antohi
    Încă nu există evaluări
  • Seminar
    Seminar
    Document4 pagini
    Seminar
    Cristina Antohi
    Încă nu există evaluări
  • Iniţiere În Limbajul SQL
    Iniţiere În Limbajul SQL
    Document48 pagini
    Iniţiere În Limbajul SQL
    Cristina Antohi
    Încă nu există evaluări
  • Teme - S5 - Studenti - 2
    Teme - S5 - Studenti - 2
    Document4 pagini
    Teme - S5 - Studenti - 2
    Cristina Antohi
    Încă nu există evaluări
  • Eu Sunt Iarna
    Eu Sunt Iarna
    Document1 pagină
    Eu Sunt Iarna
    Cristina Antohi
    Încă nu există evaluări
  • Raport Stiintific Etapa 1pdf
    Raport Stiintific Etapa 1pdf
    Document139 pagini
    Raport Stiintific Etapa 1pdf
    Cristina Antohi
    Încă nu există evaluări
  • A 03 Ghita Daniel
    A 03 Ghita Daniel
    Document9 pagini
    A 03 Ghita Daniel
    Cristina Ciurea
    Încă nu există evaluări
  • CURS2
    CURS2
    Document6 pagini
    CURS2
    Cristina Antohi
    Încă nu există evaluări
  • Curtea de Conturi - MANUAL - AUDIT - IT PDF
    Curtea de Conturi - MANUAL - AUDIT - IT PDF
    Document293 pagini
    Curtea de Conturi - MANUAL - AUDIT - IT PDF
    auditslobozia
    50% (2)
  • Abcdef
    Abcdef
    Document1 pagină
    Abcdef
    Cristina Antohi
    Încă nu există evaluări
  • Curs
    Curs
    Document1 pagină
    Curs
    Cristina Antohi
    Încă nu există evaluări
  • CURS2
    CURS2
    Document6 pagini
    CURS2
    Cristina Antohi
    Încă nu există evaluări
  • Curs
    Curs
    Document2 pagini
    Curs
    Cristina Antohi
    Încă nu există evaluări
  • RFGH
    RFGH
    Document7 pagini
    RFGH
    Cristina Antohi
    Încă nu există evaluări
  • Adcf
    Adcf
    Document8 pagini
    Adcf
    Cristina Antohi
    Încă nu există evaluări
  • Adcf
    Adcf
    Document8 pagini
    Adcf
    Cristina Antohi
    Încă nu există evaluări
  • Adcf
    Adcf
    Document8 pagini
    Adcf
    Cristina Antohi
    Încă nu există evaluări
  • Drept Civil
    Drept Civil
    Document10 pagini
    Drept Civil
    Cristina Antohi
    Încă nu există evaluări
  • Curs
    Curs
    Document9 pagini
    Curs
    Cristina Antohi
    Încă nu există evaluări