Escolar Documentos
Profissional Documentos
Cultura Documentos
Care dintre actiunile urmatoare va determina declansarea triggerului creat si inserarea unei inregistrari in
tabelul audit?
A. O comanda prin care se adauga o constrangere de cheie primara unui table existent.
B. O comanda prin care se modifica valorile unor inregistrari dintr-un tabel.
C. O comanda prin care se creaza un tabel.
D. O comanda prin care se elimina un index.
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 2
Care este varianta corecta prin care se incarca date dintr-un cursor intr-o colectie?
A. DECLARE
TYPE tip_job IS TABLE OF joburi.nume_job%TYPE;
v_nume tip_job;
CURSOR c_joburi IS SELECT nume_job FROM joburi;
BEGIN
OPEN c_joburi;
SELECT c_joburi INTO v_nume;
CLOSE c_joburi;
END;
B. DECLARE
TYPE tip_job IS TABLE OF joburi.nume_job%TYPE;
v_nume tip_job;
CURSOR c_joburi IS SELECT nume_job FROM joburi;
BEGIN
OPEN c_joburi;
FETCH c_joburi BULK COLLECT INTO v_nume;
CLOSE c_joburi;
END;
C. DECLARE
TYPE tip_job IS TABLE OF joburi.nume_job%TYPE;
v_nume tip_job;
CURSOR c_joburi IS SELECT nume_job FROM joburi;
BEGIN
OPEN c_joburi;
FETCH c_joburi INTO v_nume;
CLOSE c_joburi;
END;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 3
Se da urmatorul bloc PL/SQL
DECLARE
v_salariu NUMBER(8):=&p_salariu;
v_bonus NUMBER(8);
v_salariu_anual NUMBER(8);
BEGIN
v_salariu_anual:=v_salariu*12;
IF v_salariu_anual>=20000
THEN v_bonus:=0.01 * v_salariu_anual;
ELSIF v_salariu_anual >10000 AND v_salariu_anual <20000 THEN v_bonus:=0.02* v_salariu_anual;
ELSE v_bonus:=100;
END IF;
DBMS_OUTPUT.PUT_LINE(Bonusul este'|| v_bonus);
END;
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 4
Care este varianta de bloc PL/SQL corecta pentru a mentine intr-un vector codurile angajatilor care au salariul
mai mic decat 20000 si lucreaza in departamentul 90?
A. DECLARE
TYPE t_id IS VARRAY(100) OF angajati.id_angajat%TYPE;
v_id t_id :=t_id();
BEGIN
SELECT id_angajat INTO v_id
FROM angajati
WHERE id_departement=90 AND salariu < 20000;
END;
B. DECLARE
TYPE t_id IS VARRAY(100) OF angajati.id_angajat%TYPE;
v_id t_id :=t_id();
BEGIN
SELECT id_angajat BULK COLLECT INTO v_id
FROM angajati
WHERE id_departament=90 AND salariu < 20000;
END;
C. DECLARE
TYPE t_id IS VARRAY(100) OF angajati.id_angajat%TYPE;
v_id t_id :=t_id;
BEGIN
SELECT id_angajat BULK COLLECT INTO t_id
FROM angajati
WHERE id_departement=90 AND salariu < 20000;
END;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 5
Care dintre urmatoarele afirmatii este corecta?
A. Blocul PL/SQL care descrie actiunea unui trigger nu poate contine comanda COMIT.
B. Corpul unui trigger nu poate contine comenzi LMD.
C. Atunci cand un tabel este sters, triggeri asociati acestuia sunt dezactivati automat, nefiind eliminati.
D. In clauza ON din definitia unui trigger pot fi specificate mai multe tabele sau vizualizari.
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 6
Un pachet are doua parti, fiecare fiind stocata separat in dictionarul datelor : specificatia si corpul.
A. True
B. False
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 7
Care este varianta corecta pentru a defini un tablou imbricat de numere care are ca elemente primele 10
numere naturale?
A. DECLARE
TYPE tablou IS TABLE OF NUMBER;
tab tablou:= tablou();
BEGIN
FOR i IN 1...10 LOOP
tab.NEXT(i)
tab(i) := i;
END LOOP;
END;
B. DECLARE
TYPE tablou IS TABLE OF NUMBER;
tab tablou:= tablou();
BEGIN FOR i IN 1...10 LOOP
tab.EXTEND; tab(i) := i;
END LOOP;
END;
C. DECLARE
TYPE tablou IS TABLE OF NUMBER;
tab tablou:= tablou();
BEGIN
FOR i IN 1...10 LOOP
tab(i) := tab(i) + i;
END LOOP;
END;
D. DECLARE
TYPE tablou IS TABLE OF NUMBER;
tab tablou:= tablou();
BEGIN
FOR i IN 1...10 LOOP
tab(i) := i;
END LOOP;
END;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 8
Care este varianta incorecta prin care se obtin numele si salariul angajatilor care au salariul mai mic decat
2500 si nu lucreaza in departamentul avand codul 80?
A. DECLARE
v_nume angajati.nume%TYPE;
v_sal angajati.salariu%TYPE;
CURSOR c(var_sal NUMBER, var_dept NUMBER) IS
SELECT nume, salariu
FROM angajati
WHERE salariu<var_sal AND id_departament<>var_dept;
BEGIN
OPEN c(2500,80);
LOOP
FETCH c INTO v_nume, v_sal;
EXIT WHEN c%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(`Salariatul '||v_nume||' are salariul `|| v_sal); END LOOP;
CLOSE c;
END;
B. DECLARE
v_sal :=2500;
v_dept := 80;
BEGIN
FOR ind IN (SELECT nume, salariu
FROM angajati
WHERE salariu<var_sal AND id_departament<>var_dept)
LOOP DBMS_OUTPUT.PUT_LINE(`Salariatul '||ind_nume||' are salariul `|| ind_salariu); END LOOP;
END;
C. DECLARE
CURSOR c(var_sal NUMBER, var_dept NUMBER) IS
SELECT nume, salariu
FROM angajati
WHERE salariu<var_sal AND id_departament<>var_dept;
BEGIN
FOR ind IN c(2500,80) LOOP
DBMS_OUTPUT.PUT_LINE(`Salariatul '||ind_nume||' are salariul `|| ind_salariu); END LOOP;
END;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 9
Ce comanda SQL*Plus ar putea sa preceada blocul de mai jos pentru ca in acesta sa se utilizeze valoarea data
variabilei sem?
DECLARE
v_sem CHAR(2):=UPPER(`&sem');
BEGIN
CASE v_sem
WHEN `I' THEN DBMS_OUTPUT.PUT_LINE(`SEMESTRUL I');
WHEN `II' THEN DBMS_OUTPUT.PUT_LINE(`SEMESTRUL II');
ELSE DBMS_OUTPUT.PUT_LINE(`este o eroare!');
END CASE;
END;
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 10
Sa se introduca in tabelul testare(cod NUMBER(2)) 5 inregistrari, avand codurile egale cu 1, 2, 3, 4 respectiv 5.
Care din urmatoarele variante nu executa acest deziderat?
A. DECLARE
v_contor NUMBER(2) := 1;
BEGIN
LOOP
INSERT INTO testare VALUES (v_contor);
v_contor :=v_contor + 1;
EXIT WHEN v_contor > 5;
END LOOP;
END;
B. DECLARE
v_contor NUMBER(2) := 1;
BEGIN
WHILE v_contor < 6 LOOP
INSERT INTO testare VALUES (v_contor);
v_contor :=v_contor + 1;
END LOOP;
END;
C. DECLARE
v_contor NUMBER(2) := 1;
BEGIN
FOR i IN 1...5 LOOP
INSERT INTO testare VALUES (v_contor);
END LOOP;
END;
D. BEGIN
FOR i IN 1...5 LOOP
INSERT INTO testare VALUES (i);
END LOOP;
END;
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 11
Se da urmatorul bloc PL/SQL:
DECLARE
v_cod_sal angajati.id_angajat%TYPE:= 100;
v_cod_dept angajati.id_departament%TYPE:= 10;
v_procent NUMBER(8):=20;
BEGIN
UPDATE angajati
SET id_departament = v_cod_dept,
salariu=salariu + (salariu* v_procent/100)
WHERE id_angajat = v_cod_sal;
IF SQL%ROWCOUNT = 0 THEN
DBMS_OUTPUT.PUT_LINE (`Nu exista un angajat cu acest cod'); ELSE
COMMIT;
DBMS_OUTPUT.PUT_LINE (`Actualizare realizata');
END IF;
END;
A. Executia blocului se incheie cu o eroare, deoarece comanda clauza SET a comenzii UPDATE este utilizata
gresit.
B. Executia blocului se incheie cu o eroare, deoarece comanda COMMIT nu poate fi utilizata intr-un bloc PL/
SQL.
C. Executia blocului se incheie cu o eroare, deoarece metoda ROWCOUNT este utilizata pentru un cursor
nedeclarat.
D. Blocul se va executa fara erori si afiseaza mesajul `Nu exista un angajat cu acest cod' daca angajatul
avand codul 100 nu exista in tabelul angajati sau mesajul `Actualizare realizata' in caz contrar.
Answer: D
Candidate Response: D (Correct)
Explanation/Reference:
D
QUESTION 12
Care dintre urmatoarele afirmatii nu este corecta?
Answer: D
Candidate Response: D (Correct)
Explanation/Reference:
D
QUESTION 13
Pentru a gestiona exceptiile, utilizatorul trebuie sa scrie cateva comenzi care preiau controlul derularii blocului
PL/SQL.
Aceste comenzi sunt situate in sectiunea de tratare a erorilor dintr-un bloc PL/SQL si sunt cuprinse intre
cuvintele cheie...
A. COMMIT si END
B. WHERE si AND
C. EXCEPTION si END
D. EXCEPTION si AND
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 14
Care tabel/vizualizare poate fi folosit/folosita in urmatoarea comanda pentru a obtine informatii despre
procedurile si functiile detinute de utilizatorul curent?
SELECT *
FROM .....
WHERE OBJECT_TYPE IN (`PROCEDURE' , `FUNCTION');
A. USER_SOURCE
B. DUAL
C. USER_ERRORS
D. USER_OBJECTS
Answer: D
Candidate Response: D (Correct)
Explanation/Reference:
D
QUESTION 15
Se da urmatorul bloc PL/SQL:
DECLARE
carte VARCHAR2(20);
autor VARCHAR(15) DEFAULT 'Eminescu' ;
BEGIN
DBMS_OUTPUT.PUT_LINE(carte||' '||autor);
END;
Answer: D
Candidate Response: D (Correct)
Explanation/Reference:
D
QUESTION 16
In blocul PL/SQL de mai jos
apare:
A. un cursor explicit
B. nu apare nici un cursor
C. un cursor implicit
D. un ciclu cursor cu subcereri
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 17
Se da urmatorul bloc PL/SQL:
BEGIN
SELECT nume_job
INTO :rezultat
FROM angajat a, joburi b
WHERE a.id_job=b.id_job
AND id_angajat=100;
DBMS_OUTPUT_LINE('Numele jobului este'|| :rezultat);
END;
A. Blocul se executa fara erori si afiseaza numele jobului angajatului avand codul 100.
B. Executia blocului se incheie cu o eroare, deoarece variabila de legatura rezultat nu este declarata in afara
blocului PL/SQL.
C. Executia blocului se incheie cu o eroare, deoarece utilizarea clauzei INTO a comenzii SELECT nu este
corecta.
D. Valoarea variabilei de legatura rezultat nu poate fi afisata decat din interiorul blocului PL/SQL.
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 18
Care este varianta corecta care defineste un trigger la nivel de comanda ce determina inserarea in tabelul
audit_angajati a unui mesaj corespunzator tipului de comanda LMD executata asupra tabelului angajati?
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 19
Pachetele pot fi apelate, pot transmite parametrii si pot fi incuibarite.
A. True
B. False
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 20
Care dintre urmatoarele blocuri se executa cu erori?
A. declare
alfa interval year to month;
begin
alfa :=interval `2 - 5' year to month;
DBMS_OUTPUT.PUT_LINE(`alfa = `|| alfa);
end;
B. declare
alfa interval year to month;
begin
alfa :=interval `8' month;
DBMS_OUTPUT.PUT_LINE(`alfa = `|| alfa);
end;
C. declare
alfa interval year to month;
begin
alfa := `20 - 10';
DBMS_OUTPUT.PUT_LINE(`alfa = `|| alfa);
end;
D. declare
alfa interval month;
begin
alfa :=interval `8' month;
DBMS_OUTPUT.PUT_LINE(`alfa = `|| alfa);
end;
Answer: D
Candidate Response: D (Correct)
Explanation/Reference:
D
QUESTION 21
Se da urmatorul bloc PL/SQL
DECLARE
TYPE tablou_numar IS TABLE OF NUMBER
INDEX BY PLS_INTEGER;
v_tablou tablou_numar;
BEGIN
FOR i IN 1...10 LOOP
v_tablour(i) := i*i*i;
END LOOP;
FOR i IN v_tablou.FIRST..v_tablou.LAST LOOP
v_tablour(i) := NULL;
END LOOP;
DBMS_OUTPUT.PUT_LINE(`tabloul are ` || v_tablou.COUNT || `elemente'); v_tablou.delete;
DBMS_OUTPUT.PUT_LINE(`tabloul are ` || v_tablou.COUNT || `elemente'); END;
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 22
Care este varianta corecta pentru a crea specificatia unui pachet, care defineste un cursor pentru obtinerea
datelor si o procedura ce actualizeaza campul id_job al unui angajat cu un anumit cod?
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 23
Care este varianta corecta prin care se afiseaza numele si prenumele primelor 5 persoane angajate in luna
martie in anul 1997?
A. DECLARE
v_nume angajati.nume%TYPE; v_prenume angajati.prenume%TYPE; CURSOR c IS
SELECT nume, prenume FROM angajati
WHERE TO_CHAR(data_angajarii, MM-YYYY)=03-1997
ORDER BY data_angajarii ASC;
BEGIN
OPEN c;
LOOP
FETCH c INTO v_nume, v_prenume;
EXIT WHEN c%ROWCOUNT>5;
DBMS_OUTPUT.PUT_LINE(v_nume||' `|| v_prenume);
END LOOP;
CLOSE c;
END;
B. DECLARE
v_nume angajati.nume%TYPE; v_prenume angajati.prenume%TYPE; CURSOR c IS
SELECT nume, prenume FROM angajati
WHERE TO_CHAR(data_angajarii, `MM-YYYY')='03-1997'
ORDER BY data_angajarii;
BEGIN
OPEN c;
LOOP
FETCH c INTO v_nume, v_prenume;
EXIT WHEN c%ROWCOUNT>5 OR c%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_nume||' `|| v_prenume);
END LOOP;
CLOSE c;
END;
C. DECLARE
v_nume angajati.nume%TYPE; v_prenume angajati.prenume%TYPE; CURSOR c IS
SELECT nume, prenume FROM angajati
WHERE TO_CHAR(data_angajarii, `MM-YYYY')='03-1997'
ORDER BY data_angajarii DESC;
BEGIN
OPEN c;
LOOP
FETCH c INTO v_nume, v_prenume;
EXIT WHEN c%ROWCOUNT<5 AND c%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_nume||' `|| v_prenume);
END LOOP;
END;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 24
Pachetele sunt unitati de program care pot cuprinde proceduri, functii, cursoare, tipuri de date, constante,
variabile si exceptii.
A. True
B. False
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 25
Se presupune c ntr-o sal a unui muzeu pot fi expuse maximum 10 opere de art. Pentru aceasta se creeaz
urmtorul trigger:
A. Triggerul este creat fara erori la compilare si va functiona corect pentru toate comenzile LMD utilizate
asupra tabelului opera.
B. Aceasta conditie poate fi implementata prin adaugarea unei constrangeri de tip CHECK asupra tabelului
opera.
C. Triggerul este creat cu erori la compilare
D. Triggerul este creat fara erori la compilare, dar in cazul anumitor comenzi LMD asupra tabelului opera va
genera eroarea "table mutating".
Answer: D
Candidate Response: D (Correct)
Explanation/Reference:
D
QUESTION 26
Ce trebuie adaugat la linia 11 pentru ca in urmatorul bloc PL/SQL sa se foloseasca corect cursorul?
1 DECLARE
2 CURSOR c_ang IS
3 SELECT *
4 FROM angajati
5 WHERE TO_CHAR(data_angajarii,'YYYY')=2000
6 FOR UPDATE OF salariu NOWAIT;
7 BEGIN
8 FOR v_c_ang IN c_ang LOOP
9 UPDATE angajati
10 SET salariu=salariu+1000
11 .............................
12 END LOOP;
13 END;
A. END UPDATE;
B. WHERE CURRENT OF c_ang;
C. FOR EACH ROW
D. EXIT WHEN c_ang%NOTFOUND;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 27
Parametrii unei functii pot fi:
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 28
Se da functia de mai jos ,care permite calcularea unui impozit pe salariu de 10%.
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 29
Se da urmatorul bloc PL/SQL:
DECLARE
v_nume angajati.nume%TYPE;
v_data angajati.data_angajarii%TYPE;
CURSOR c IS
SELECT nume, data_angajarii
FROM angajati;
BEGIN
OPEN c;
LOOP
INSERT INTO informatii (nume_angajat, data_angajarii)
VALUES (v_nume, v_data);
EXIT WHEN c%NOTFOUND;
END LOOP;
COMMIT;
END;
A. Blocul se executa fara erori, introducandu-se in tabelul informatii o linie cu toate valorile null , respectiv toate
liniile din tabelul angajati
B. Executia blocului se incheie cu o eroare, deoarece cursorul c nu este inchis dupa ce este utilizat
C. Executia blocului se incheie cu o eroare, deoarece utilizarea comenzii COMMIT nu este permisa in interiorul
unui bloc PL/SQL
D. Blocul se executa fara erori, introducandu-se in tabelul informatii toate liniile din tabelul angajati
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 30
Care este varianta corecta de cod PL/SQL care sterge din tabelul joburi, joburile pentru care salariul minim este
4000 sau 8200, daca aceste valori sunt mentinute intr-un vector?
A. DECLARE
TYPE min_sal IS VARRAY(20) OF NUMBER;
v_min_sal min_sal:=min_sal(4000,8200);
BEGIN
FORALL i IN v_min_sal.FIRST..v_min_sal. LAST
DELETE FROM joburi
WHERE salariu_min=v_min_sal(i);
END;
B. DECLARE
TYPE min_sal IS VARRAY(20) OF NUMBER;
v_min_sal min_sal:=min_sal(4000,8200);
BEGIN
FOR i IN v_min_sal.FIRST..v_min_sal. LAST
DELETE FROM joburi
WHERE salariu_min=v_min_sal(i);
END;
C. DECLARE
TYPE min_sal IS VARRAY(20) OF NUMBER;
v_min_sal min_sal;
BEGIN
FORALL i IN v_min_sal.FIRST..v_min_sal. LAST
DELETE FROM joburi
WHERE salariu_min=v_min_sal(i);
END;
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 31
Se defineste un trigger care determina inserarea unei linii in tabelul angajati_log atunci cand salariul unui
angajat este marit.
Care dintre urmatoarele variante este corecta?
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 32
Care dintre urmatoarele vizualizari poate fi folosita in urmatoarea comanda pentru a vizualiza codul complet al
subprogramului P1:
SELECT TEXT
FROM ....
WHERE NAME = UPPER('P1');
A. USER_OBJECTS
B. USER_ERRORS
C. USER_FUNCTIONS
D. USER_SOURCE
Answer: D
Candidate Response: D (Correct)
Explanation/Reference:
D
QUESTION 33
Exceptiile care se produc atunci cand un bloc PL/SQL nu respecta o regula ORACLE sau depaseste o limita a
sistemului de exploatare sunt :
A. Exceptii independente
B. Exceptii interne
C. Exceptii predefinite
D. Exceptii externe
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 34
Ce trebuie adaugat la linia 9 pentru ca urmatoarea functie sa fie corect creata?
A. DBMS_OUTPUT.PUT_LINE(v_numar);
B. COMMIT;
C. RETURN v_numar;
D. nu mai trebuie adaugat nimic.
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 35
Care este varianta corecta prin care se adauga in tabelul angajati un nou camp numit telefon de tip tablou
imbricat, pt care se vor stoca pt fiecare salariat numerele sale de telefon, si apoi se insereaza o linie noua in
tabel?
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 36
Se da urmatorul bloc PL/SQL:
DECLARE
nume VARCHAR2(15);
v_nr INTEGER;
BEGIN
SELECT LENGTH(nume) INTO v_nr
FROM dual;
DBMS_OUTPUT.PUT_LINE('Sirul are '||v_nr||'caractere');
END;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 37
Care din urmatoarele declaratii de valabilitate este corecta?
A. v_id_student NUMBER(5);
v_nume_student VARCHAR2(35) NOT NUL:=Ionescu;
v_prenume_student CHAR(20);
v_data DATE DEFAULT SYSDATE;
B. v_id_student NUMBER(5);
v_nume_student VARCHAR2(35) NOT NUL:='Ionescu';
v_prenume_student studenti.prenume%TYPE;
v_data DATE:=SYSDATE+1;
C. v_id_student NUMBER(2):=150;
v_nume_student studenti.nume%ROWTYPE:='Ionescu';
v_prenume_student CHAR(20);
v_data DATE:=SYSDATE+1;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 38
Se da urmatorul bloc PL/SQL
DECLARE
TYPE tabimb IS TABLE OF VARCHAR2(50);
tab1 tabimb;
tab2 tabimb:= tabimb ();
BEGIN
IF tab1 IS NULL THEN
DBMS_OUTPUT.PUT_LINE(`tab1 este NULL');
ELSE
DBMS_OUTPUT.PUT_LINE(`tab1 este NOT NULL');
END IF;
IF tab2 IS NULL THEN
DBMS_OUTPUT.PUT_LINE(`tab2 este NULL');
ELSE
DBMS_OUTPUT.PUT_LINE(`tab2 este NOT NULL');
END IF;
END;
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 39
Care este varianta corecta pentru declararea urmatoarelor variabile?
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 40
Care dintre urmatoarele vizualizari poate fi folosita in urmatoarea comanda pentru a vizualiza eroarea aparuta
la compilarea unui program
A. USER_FUNCTIONS
B. USER_OBJECTS
C. USER_ERRORS
D. USER_SOURCE
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 41
Se presupune ca a fost creat tabelul dept(id_depatament, nr_angajati), care mentine pentru fiecare
departament numarul de angajati care lucreaza in acesta. Prin comanda urmatoare se defineste vizualizarea
view_angajati:
Care este varianta corecta prin care se defineste un trigger care va determina incrementarea cu 1 a numarului
de angajati din tabelul dept daca in vizualizare este inserata o inregistrare, respective decrementarea cu 1 a
numarului de angajati din tabelul dept daca din vizualizare este stearsa o inregistrare?
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 42
Pentru ca urmatorul bloc PL/SQL sa fie corect trebuie adaugat la linia 6 urmatorul cod:
1 DECLARE
2 TYPE typetablou IS TABLE OF NUMBER;
3 tablou typetablou:= typetablou();
4 BEGIN
5 FOR i IN 1..10 LOOP
6 ....................................
7 tablou(i) :=i;
8 END LOOP;
9 END;
A. tablou.EXTEND;
B. tablou:= typetablou();
C. tablou(i):= typetablou();
D. tablou(i).NEXT;
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 43
Pentru ca urmatorul bloc PL/SQL sa fie corect si sa afiseze codul, salariul si jobul angajatului cu codul 100,
trebuie adaugat la linia 10 urmatorul cod:
SQL> DECLARE
2 TYPE type_ang IS RECORD (
3 ang_cod angajati.id_angajat%TYPE,
4 sal angajati.salariu%TYPE,
5 job angajati.id_job%TYPE);
6 v_ang type_ang;
7 BEGIN
8 DELETE FROM angajati
9 WHERE id_angajat=100
10 ..............................................
11 INTO v_ang;
12 DBMS_OUTPUT.PUT_LINE (` Angajatul cu codul :'|| v_ang.ang_cod || 13 ` si jobul ` || v_ang.job || ` are
salariul ` || v_ang.sal); 14 END;
A. RETURNING angajati%rowtype
B. RETURNING id_angajat, RETURNING salariu, RETURNING id_job
C. RETURNING id_angajat, salariu, id_job
D. RETURNING v_ang
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 44
Se presupune ca asupra tabelului angajati au fost definiti urmatorii 4 triggeri LMD:
O comanda UPDATE actualizeaza 3 inregistrari din tabelul angajati. In acest caz, de cate ori este executat
fiecare trigger (in dreptul numelui triggerului este trecut numar de executii al acestuia)?
A. Trigger1 - 1
Trigger2 - 1
Trigger3 - 3
Trigger4 - 1
B. Trigger1 - 0
Trigger2 - 3
Trigger3 - 3
Trigger4 - 0
C. Trigger1 - 0
Trigger2 - 1
Trigger3 - 3
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 45
Care este varianta corecta pentru afisarea variabilei v_mesaj ?
Answer: B
Candidate Response: B (Correct)
Explanation/Reference:
B
QUESTION 46
Variabila g_mesaj declarata ca mai jos este:
A. Variabila de substitutie.
B. De tip record.
C. Variabila de legatura.
D. De tip varray.
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 47
Care dintre urmatoarele variante apeleaza corect functia F_TEST care are un singur parametru numeric?
Answer: A
Candidate Response: A (Correct)
Explanation/Reference:
A
QUESTION 48
Pentru ca urmatorul bloc PL/SQL sa fie corect trebuie adaugat la linia 8 urmatorul cod:
A. INTO ang_record_type%type
B. INTO ang_record_type%rowtype
C. INTO ang_record_type
D. INTO ang_record
Answer: D
Candidate Response: D (Correct)
Explanation/Reference:
D
QUESTION 49
Blocul urmator afiseaza:
DECLARE
v_x NUMBER(9,2):=10;
v_y NUMBER(9,2);
v_message VARCHAR2(20);
BEGIN
v_y:= NULL;
IF v_x !=v_y THEN
v_message := ` NOT EQUAL';
ELSE v_message := `EQUAL';
END IF;
DBMS_OUTPUT.PUT_LINE(v_message);
END;
A. NOT EQUAL
B. EROARE
C. EQUAL
D. NIMIC
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C
QUESTION 50
Codul sursa de mai jos defineste un pachet cu ajutorul caruia, utilizand un subprogram functie si un cursor, se
poate obtine salariul minim inregistrat pentru angajati si lista angajatilor care au salariul mai mare sau egal
decat acel minim +1000.
A. DECLARE
val_min NUMBER ;
BEGIN
val_min:=pachet_min_sal.f_min;
DBMS_OUTPUT.PUT_LINE(`Salariul minim ' || ' ` || val_min);
FORv_cursor IN pachet_min_sal .c_ang(val_min)LOOP
DBMS_OUTPUT.PUT_LINE(v_cursor.nume||' `|| v_cursor.salariu);
END LOOP;
END;
B. DECLARE
val_min NUMBER ;
BEGIN
DBMS_OUTPUT.PUT_LINE(`Salariul minim ' || ' ` || val_min);
FORv_cursor IN pachet_min_sal .c_ang(val_min)LOOP
DBMS_OUTPUT.PUT_LINE(v_cursor.nume||' `|| v_cursor.salariu);
END LOOP;
END;
C. DECLARE
val_min NUMBER ;
BEGIN
val_min:=pachet_min_sal.f_min;
DBMS_OUTPUT.PUT_LINE(`Salariul minim ' || ' ` || val_min);
FORv_cursor IN pachet_min_sal .c_ang(val_min)
DBMS_OUTPUT.PUT_LINE(v_cursor.nume||' `|| v_cursor.salariu);
END;
Answer: C
Candidate Response: C (Correct)
Explanation/Reference:
C