Font size
WorksheetsMarea recapitulare
Total questions: 10
Worksheet time: 5mins
Un bloc PL/SQL este compus din pana la 3 sectiuni, dupa cum urmeaza:
DECLARE (mandatory)
BEGIN (mandatory)
EXCEPTION (optional)
DECLARE (optional)
BEGIN (mandatory)
EXCEPTION (optional)
DECLARE (mandatory)
BEGIN (mandatory)
EXCEPTION (mandatory)
DECLARE (mandatory)
BEGIN (optional)
EXCEPTION (optional)
O exceptie PL/SQL este:
declarata prin cuvantul cheie EXCEPTION
declarat si gestionat intotdeauna intr-un bloc PL/SQL
un identificator asociat unei conditii anormale aparute in timpul executiei unui bloc PL/SQL
asociat unei conditii complet normale aparute in timpul executiei unui bloc PL/SQL
Secventa
r c%rowtype
fetch c into r
exit when c%notfound
dbms_output.put_line('name= ' || c.cust_last_name)
afiseaza
numele unui client
numele ultimului client
mesaj de eroare, variabila cursor nefiind folosita corect
nu afiseaza nimic
Ce tipuri de exceptii trebuie invocate in mod explicit?
exceptii definite de utilizator
exceptii predefinite
exceptii non-predefinite ale serverului Oracle
toate exceptiile trebuie invocate explicit
In secventa
update angajati
set salaries = salariul*procent/100
where id_angajat =20;
commit; :
COMMIT poate aparea in bloc, neavand efect si asupra comenzilor din afara blocului
blocul realizeaza o operatie de actualizare
UPDATE e permisa intr-un bloc pl/sql
COMMIT poate aparea in bloc, dar este independenta de acesta, avand efect si asupra comenzilor din afara blocului
Secventa
for i in v_tab.first..v_tab.last loop
dbms_output.put_line(v_tab(i).last_name|| ' works in department: '||v_tab(i).department_id);
end loop;
dbms_output.put_line(v_tab.count);
incarca datele in tabloul indexat
utilizeaza tipuri de date colectie
realizeaza extragerea din tabloul indexat
este eronata
Clauza FOR UPDATE:
se adauga pentru a bloca liniile afectate atunci cand cursorul este inchis
nu exista in PL/SQL
se adauga pentru a bloca liniile afectate atunci cand cursorul este deschis
impune deblocarea liniilor unei tabele anume
In snippet-ul
CREATE or REPLACE PROCEDURE NEW_PROC
(p_id IN EMPLOYEES.employee_id%type, p_avg_sal OUT number)
IS
prin p_avg_sal:
se primeste salariul mediu modificat si returneaza salariul mediu actual
se returneaza salariul mediu modificat
se primeste salariul mediu actual si returneaza salariul mediu modificat
se primeste salariul mediu modificat
Elementele pachetului (variabile, proceduri sau functii) sunt accesate cu urmatoarea sintaxa:
execute element_name().package_name;
nu pot fi accesate
execute element_name();
execute package_name.element_name();
Ce este eronat in secventa de mai jos?
create or replace trigger my_trig
when(new.credit_limit < old.credit_limit)
raise_app_error(-20202, ' operation forbidden ');
clasificatorii NEW si OLD nu sunt prefixati prin ":"
nu se specifica evenimentul care declanseaza trigger-ul
nu este mentionat cand anume se declanseaza trigger-ul
tabela asociata trigger-ului nu este specificata
