AII

A vibrant, engaging digital illustration showcasing PL/SQL concepts, such as database tables, triggers, and coding snippets, with elements that convey learning and proficiency.

PL/SQL Proficiency Quiz

Test your knowledge and skills in PL/SQL with our comprehensive quiz designed for database professionals and enthusiasts. This quiz covers a wide range of topics including triggers, exceptions, cursors, and more.

Whether you're preparing for certification, enhancing your database skills, or just curious about PL/SQL, this quiz is the perfect way to challenge yourself. Key features include:

  • 49 carefully crafted questions
  • Multiple choice answers to test your understanding
  • Immediate feedback on your answers
49 Questions12 MinutesCreated by CodingWarrior247
1. Fie urmatoarea declaratie: dep departments%ROWTYPE. Atunci dep reprerezinta:
A) un tabel din baza de date
B) o variabila de tipul %ROWTYPE
C) o colectie ce contine toate inregistrarile tabelului departments
D) o inregistrare avand numele si tipul campurilor ca si numele si tipul coloanelor din tabelul departments
2. Cursoarele pot fi:
A) stocate
B) locale
C) implicite
D) explicite
3. Care dintre urmatoarele variante permite prelucrarea unui sir de caractere(v_sir) de la tastatura ?
A) DBMS_INPUT.read_line(“Introduceti un numar:”||n_nr);
B) nu se poate prelua un sir;
C) v_nr :=’&v_nr’;
4. Indicati propozitia/propozitiile adevarate:
A) PL/SQL permite interceptarea si prelucrarea exceptiilor care apar intr-un bloc de cod.
B) PL/SQL permite definirea unor exceptii bazate pe reguli specifice de utilizator.
C) La momentul aparitiei unei exceptii este generat un mesaj care explica cauza exceptiilor aparute.
5. Tabelul Angajati contine: employee_id last_name 100 King 110 Kochhar 120 Austin 130 Chen 140 Popp Fie urmatorul cod: CREATE OR REPLACE TRIGGER test AFTER DELETE ON Angajat BEGIN DBMS_OUTPUT_PUT.LINE(‘Operatie efectuata’); END; De cate ori se va afisa mesajul Operatie efectuata daca se executa instructiunea SQL DELETE FROM Angajati WHERE employee_id<130?
4
0
3
1
6. Fie codul de mai jos.Indicati instructiunea/intructiunile corecte: CREATE OR REPLACE PACKAGE test IS FUNCTION medie(dep departments.department_id%TYPE); RETURN NUMBER; PROCEDURE nume(dep departments.department_id%TYPE); END test;
A) DBMS_OUTPUT_PUT_LINE(test.nume(80));
B) DBMS_OUTPUT_PUT_LINE(test.medie(80));
C) DBMS_OUTPUT_PUT_LINE(medie.dep(80));
D) DBMS_OUTPUT_PUT_LINE(nume.test);
7. Care dintre urmatoarele declaratii de variabile sunt corecte in PL/SQL?
A) int a;
B) a Integer
C) a employees.employee_id%TYPE;
8. Fie instructiunea urmatoare: IF conditie THEN Instructiuni END IF; Care dintre urmatoarele variante poate fi conditie:
A) a==0;
B) a=0;
C) a:=0;
9. Sectiunea de executie a unui bloc PL/SQL:
A) este obligatorie
B) este optionala
C) incepe cu BEGIN
D) incepe cu EXECUTE
10. Indicati propozitia/propozitiile adevarate:
A) Procedurile stocate sunt compilate de fiecare data cand este executat blocul care le contine.
B) Procedurile locale sunt compilate de fiecare data cand este executat blocul care le contine
C) Procedurile locale nu sunt compilate.
D) Procedurile stocate nu sunt compilate. ssssssssssssssssssss
11. Fie urmatoarele declaratii: TYPE tab_nume IS TABLE employees_employee_id%TYPE; t_nume tab_nume; v_nume employees.last_name%TYPE; Indicati instructiunea corecta:
A) SELECT last_name INTO t_nume FROM employees;
B) SELECT last_name INTO v_nume FROM employees;
C) SELECT last_name BULK COLLECT INTO t_nume FROM employees;
D) SELECT last_name BULK COLLECT INTO v_nume FROM employees;
12. Pentru a efectua actiuni asociate operatiilor de inserare si stergere intr-un tabel:
A) se poate crea un trigger asociat celor doua operatii(inserare si stergere);
B) trebuie create doua triggere: unul pentru operatia de inserare si unul pentru operatia de stergere
C) nu se pot asocia actiuni operatiilor de inserare si stergere.
13. Fie instructiunea: CASE numar WHEN 1 THEN x=0; WHEN 2 THEN x=x+1; END CASE; Care este recultatul executiei cand numar are valoarea 3?
A) se trece la urmatoarea instructiune din program
B) se executa x=0, aopi x=x+1, deci x va fi 1
C) se declanseaza eroarea predefinita CASE_NOT_FOUND
14. In PL/SQL variabilele:
A) isi pot schimba valoarea in timpul executiei programului
B) pot fi initializate
C) nu pot fi initializate
D) nu isi pot schimba valoarea in timpul executiei programului
15. Daca se parcurg liniile unui cursor utilizand o instructiune LOOP, atunci trebuie utilizata instruciunea:
A) EXIT WHEN nume_cursor%ISCLOSED;
B) EXIT WHEN nume_cursor%ISOPEN;
C) EXIT WHEN nume_cursor%NOTFOUND; ->
16. O procedura poate returna o valoare de tip:
A) o procedura nu poate returna o valoare
B) VARCHAR
C) NUMBER
D) INTEGER
17. Daca la momentul implementarii nu este cunoscuta complet comanda SQL care trebuie executata:
A) nu se poate executa niciodata o astfel de comanda
B) se suspenda implementarea pana la aflarea tuturor informatiilor
C) se utilizeaza SQL dinamic
18. Fie urmatorul cod: CREATE OR REPLACE PROCEUDRE p1(p_sal_mediu OUT NUMBER) IS BEGIN SELECT AVG(salary) INTO p_sal_mediu FROM employees; END p1; Daca procedura p1 exista deja atunci:
A) este inlocuita cu noua versiune
B) este creata o noua procedura cu numele p1(2)
C) este solicitat un alt nume pentru procedura
D) se genereaza o eroare
19. Indicati propozitia adevarata:
A) Pachetele sunt obiecte ale bazei de date
B) Corpul unui pachet contine codul PL/SQL pentru obiectele declarate in specificatia acestuia si obiectele private ale pachetului
C) Specificatia unui pachet trebuie sa fie creata ianintea corpului
20. SQLERRM reprezinta:
A) o instructiune care permite executia dinamica a unui cod PL/SQL
B) o extentie procedurala a limbajului SQL
C) o functie predefinita care intoarce mesajul de eroare asociat ultimei exceptii
21. SQLCODE reprezinta:
A) o functie predefinita care intoarce docul ultimei exceptii
B) o extensie procedurala a limbajului PL/SQL
C) o instructiune care permite executia dinamica a unui cod PL/SQL
22. Cursoarele sunt:
A) pointeri catre zone de stocare temporare, create in memorie atunci cand sunt executate instructiuni SQL
B) instructiuni PL/SQL
C) tabele temporare stocate in baza de date
33. Instructiunea urmatoare IF nume_cursor%NOTFOUND THEN instructiuni END IF; verifica daca:
A) mai exista linii in setul activ al cursorului dupa linia curenta
B) cursorul nume_cursor este deschis
C) exista cursorul nume_cursor
4. Un declansator(trigger) asociat cu o operatie update se poate declansa:
A) atat inainte, cat si dupa efectuarea operatiei-se va preciza la crearea trigger-ului
B) doar inainte de efectuarea update-ului
C) doar dupa ce s a efectuat operatia update
5. Fie urmatorul cod: CREATE PROCEUDRE p1(p_sal_mediu XX NUMBER) IS BEGIN SELECT AVG(salary) INTO p_sal_mediu FROM employees; END p1; XX poate fi:
A) IN OUT
Aaaa
Aaaaa
6. Fie codul de mai jos: CREATE OR REPLACE PACKAGE test IS FUNCTION medie(dep departments.department_id%TYPE) RETURN NUMBER; PROCEDURE nume(dep departments.department_id%TYPE); END test;
A) DBMS_OUTPUT_PUT_LINE(test.medie(dep));
B) DBMS_OUTPUT_PUT_LINE(medie.test);
C) DBMS_OUTPUT_PUT_LINE(medie.dep);
D) DBMS_OUTPUT_PUT_LINE(test.medie);
7. Intr-un program PL/SQL sectiunea declarativa:
A) incepe cu BEGIN
B) este obligatori
C) incepe cu DECLARE
D) este optionala
8. Tipul RECORD:
A) Nu exista in PL/SQL
B) Permite prelucrarea simultana a mai multor variabile de acelasi tip
C) Permite prelucrarea simultana a mai multor variabile de tipuri diferite
9. O functie stocata trebuie sa contina intotdeaua:
A) Instructiunea RETURN
B) O instructiune de atribuire
C) O secventa de tratare a exceptiilor
D) Instructiunea EXIT
10. Fie urmatoarele declaratii : TYPE tab_nume IS TABLE OF departments.department_name%TYPE t_nume tab_nume; v_nume departments.department_name%TYPE CURSOR c IS SELECT department_name FROM departments; Indicati instructiunea corecta:
A) FETCH c BULK COLLECT INTO v_nume;
B) FETCH c INTO v_nume;
C) FETCH c INTO t_nume;
D) FETCH c BULK COLLECT INTO t_nume;
11. Care dintre urmatoarele evenimente poate activa un declansator ?
A) stergerea unui linii dintr-un tabel
B) modificarea valorii unui camp
C) stergerea unui tabel
13. Care dintre urmatoarele declaratii de variabile sunt corecte in PL/SQL?
A) v_var employees%ROWTYPE;
C) v_var employees.employee_id%TYPE
B) v_var employees.employee_id%ROWTYPE
D) v_var employees%TYPE;
14.Ce exceptie poate genera instructiunea urmatoare? SELECT employee_id INTO v_id FROM employees WHERE last_name=v_nume;
A) ZERO_DEVIDE
B) NO_DATA_FOUND
C) TOO_MANY_ROWS
15.Indicati propozitia adevarata:
A) Corpul unui pachet trebuie creat inainte de specificatia sa
B) Corpul unui pachet trebuie creat dupa ce a fost creata specificatia sa
16.Considerand urmatoarea secventa de cod, indicati variantele care pot inlocui conditie: x:=10; LOOP DBMS OUTPUT.PUT_LINE(x); EXIT WHEN conditie; END LOOP;
A) x :=0
B) x =0
C) x<=5
D) x==0
17.Codul urmator creeaza: PROCEDURE p1 IS v_sal_mediu employees.salary%type; BEGIN SELECT AVG(salary) INTO v_sal_mediu FROM employees; DBMS_OUTPUT.PUT_LINE(‘Salariul mediu este ‘||v_sal_mediu); END p1;
A) O functie locala
B) O procedura stocata
C) O functie stocata
D) O procedura locala
18.Care dintre urmatoarele variante este corecta in locul liniei punctate? DECLARE CURSOR testCursor IS SELECT employee_ID, last_name FROM employees WHERE employee_ID<110; BEGIN FOR I IN testCursor LOOP .............................. END LOOP;
A) DBMS_OUTPUT.put_line(i.employee_ID ||’-‘||i.last_name);
B) DBMS_OUTPUT.put_line(testCursor(i));
C) DBMS_OUTPUT.put_line(testCursor.employee_ID||’- ‘||testCursor.last_name);
19.Instructiunea RAISE:
A) activeaza exceptia ZERO_DIVIDE
B) activeaza explicit o exceptie externa
C) exte utilizata pentru operatia de ridicare la putere
26. Indicaţi propoziţia adevărată:
A) Un cursor conține informații referitoare la o declarație SELECT, precum și la liniile accesate de aceasta.
B) La executia oricarei instructiuni SELECT este creat automat un cursor implicit.
C) La executia oricarei instructiuni UPDATE este creat automat un cursor implicit.
20. Atributul %TYPE
A) Nu exista in PL/SQL
B) Furnizeaza tipul de data asociat unei variabile sau unei coloane de table
C) Este utilizat pentru a define un nou tip de data
27. Fie codul de mai jos. Indicați instrucțiunea/instrucțiunile corecte: ???? Le am pus pe toate vedem la test ce sicum:))
Test.nume;
Test.medie;
Medie.dep;
Test.nume(dep);
21. Instrucțiunea RAISE:
A) activează exceptia ZERO_DIVIDE
B) activează explicit o excepție externă
C) este utilizată pentru operația de ridicare la putere
28.Indicaţi propoziţia/propoziţiile adevărate:
A) Procedurile locale pot fi apelate din orice bloc PL/SQL.
B) Procedurile stocate pot fi apelate doar din blocul PL/SQL care le conține.
C) Procedurile stocate pot fi apelate din orice bloc PL/SQL.
D) Procedurile locale pot fi apelate doar din blocul PL/SQL care le conține.
22. Un declanșator(trigger) asociat cu o operație update se poate declanșa:
A) doar înainte de efectuarea update-ului
B) doar după ce s-a efectuat operația update
C) atât înainte, cât și după efectuarea operației – se va preciza la crearea trigger-ului
29.Fie următoarele declaraţii: TYPE tab_nume IS TABLE OF employees.last_name%TYPE; t_nume tab_nume; v_nume employees.last_name%TYPE; Indicaţi instrucţiunea corectă:
A) SELECT last_name BULK COLLECT INTO v_nume FROM employees;
B) SELECT last_name INTO v_nume FROM employees;
C) SELECT last_name BULK COLLECT INTO t_nume FROM employees;
D) SELECT last_name INTO t_nume FROM employees;
23. Indicaţi propoziţia adevărată:
A) Specificația unui pachet trebuie să fie creată înaintea corpului pachetului.
B) Corpul unui pachet conţine codul PL/SQL pentru obiectele declarate în specificaţia acestuia şi obiectele private ale pachetului.
C) Pachetele sunt obiecte ale bazei de date.
30.Care dintre următoarele variante este corectă în locul liniei punctate? DECLARE CURSOR testCursor IS SELECT employee_ID,last_name FROM employees WHERE employee_ID < 110; BEGIN FOR I IN testCursor LOOP . . . . . . . . . . . . . . END LOOP; Select one or more:
A) DBMS_OUTPUT.put_line(testCursor.employee_ID || ' - ' || testCursor.last_name);
B) DBMS_OUTPUT.put_line(i.employee_ID || ' - ' || I.last_name);
C) DBMS_OUTPUT.put_line(testCursor(i));
25. Fie următorul cod: ??? Dacă, la execuția acestui cod, procedura p1 există deja, atunci: vedem la tst:)))
A) este înlocuită cu noua versiune
B) este creată o nouă procedură cu numele p1(2)
C) se generează o eroare
D) este solicitat un alt nume pentru procedură
31. În PL/SQL variabilele:
A) iși pot schimba valoarea în timpul execuției programului
B) pot fi inițializate
C) nu iși pot schimba valoarea în timpul execuției programului
D) nu pot fi inițializate
{"name":"AII", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Test your knowledge and skills in PL\/SQL with our comprehensive quiz designed for database professionals and enthusiasts. This quiz covers a wide range of topics including triggers, exceptions, cursors, and more.Whether you're preparing for certification, enhancing your database skills, or just curious about PL\/SQL, this quiz is the perfect way to challenge yourself. Key features include:49 carefully crafted questionsMultiple choice answers to test your understandingImmediate feedback on your answers","img":"https:/images/course7.png"}
Powered by: Quiz Maker