PL/SQL Quiz
41 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Care dintre următoarele opțiuni descrie cel mai bine combinația limbajului PL/SQL?

  • Combină puterea de manipulare a datelor din HTML cu capacitatea de procesare a limbajelor orientate obiect.
  • Combină puterea de manipulare a datelor din XML cu capacitatea de procesare a limbajelor declarative.
  • Combină puterea de manipulare a datelor din JavaScript cu capacitatea de procesare a limbajelor funcționale.
  • Combină puterea de manipulare a datelor din SQL cu capacitatea de procesare a limbajelor procedurale. (correct)

În PL/SQL, declarațiile SQL nu pot fi emise dintr-un program PL/SQL.

False (B)

Care sunt cele trei părți principale care definesc un bloc PL/SQL?

DECLARE, BEGIN, EXCEPTION

Unitatea de bază a unui program sursă PL/SQL este un ______.

<p>bloc</p> Signup and view all the answers

Asociază caracteristicile PL/SQL cu descrierile corecte:

<p>Blocuri = Grupează declarații și instrucțiuni asociate. Subprograme = Pot fi reutilizate în diverse aplicații. Gestionarea erorilor = Permite tratarea erorilor care apar în timpul execuției programului. Pachete = Modalități de grupare a subprogramelor și declarațiilor</p> Signup and view all the answers

Care dintre următoarele nu este o caracteristică a limbajului PL/SQL?

<p>Manipularea directă a interfeței grafice (A)</p> Signup and view all the answers

Partea declarativă (DECLARE) este obligatorie într-un bloc PL/SQL.

<p>False (B)</p> Signup and view all the answers

Unde poate fi folosită o variabilă de tip RECORD într-o instrucțiune UPDATE?

<p>Pe partea dreaptă a clauzei SET (B)</p> Signup and view all the answers

Un tip RECORD definit într-o specificație de pachet este compatibil cu un tip RECORD local definit identic.

<p>False (B)</p> Signup and view all the answers

Care este valoarea inițială a unui câmp dintr-un RECORD?

<p>NULL</p> Signup and view all the answers

O constrângere ________ poate fi specificată pentru un câmp al unui record, impunând o valoare inițială diferită de NULL.

<p>NOT NULL</p> Signup and view all the answers

Ce tip de operații de comparație NU sunt permise în mod nativ pentru variabilele de tip RECORD?

<p>Toate cele de mai sus. (A)</p> Signup and view all the answers

O variabilă declarată folosind %ROWTYPE sau %TYPE moștenește valoarea inițială a elementului referit.

<p>False (B)</p> Signup and view all the answers

În ce clauză a unei instrucțiuni INSERT poate fi folosită o variabilă de tip RECORD?

<p>VALUES</p> Signup and view all the answers

Asociați afirmațiile cu restricțiile aplicabile inserărilor și actualizărilor RECORD:

<p>Clauza <code>VALUES</code> a unei instrucțiuni <code>INSERT</code> conține o variabilă <code>RECORD</code> = Nicio altă variabilă sau valoare nu este permisă în clauză. Clauza <code>INTO</code> a unei clauze <code>RETURNING</code> conține o variabilă <code>RECORD</code> = Nicio altă variabilă sau valoare nu este permisă în sub-clauză. 'ROW' și subcereri = Nu pot fi utilizate împreună</p> Signup and view all the answers

Care dintre următoarele NU este o restricție legată de tipurile RECORD?

<p>Tipuri <code>RECORD</code> pot fi create la nivelul schemei. (B)</p> Signup and view all the answers

Ce face instrucțiunea FETCH într-un cursor explicit?

<p>Extrage rândul curent din setul de rezultate, stochează valorile și avansează cursorul. (C)</p> Signup and view all the answers

PL/SQL ridică o excepție atunci când o instrucțiune FETCH nu returnează niciun rând.

<p>False (B)</p> Signup and view all the answers

Ce atribut al cursorului explicit este utilizat pentru a verifica dacă un cursor este deschis?

<p>%ISOPEN</p> Signup and view all the answers

După ce un cursor este închis, nu se mai pot extrage înregistrări din setul de rezultate al cursorului și nu se mai pot referi ___________ cursorului.

<p>atributele</p> Signup and view all the answers

Asociază acțiunile cu declarațiile corespunzătoare:

<p>Deschide un cursor = Nu este menționat in text Extrage un rând de date = FETCH cursor_name INTO into_clause; Închide un cursor = CLOSE cursor_name; Verifică starea cursorului = Nu este menționat in text</p> Signup and view all the answers

Ce face operatorul DELETE(n) într-un array asociativ sau tabel imbricat?

<p>Șterge elementul cu indexul <code>n</code>, dacă acesta există. (B)</p> Signup and view all the answers

Operatorul DELETE(m, n) elimină doar elementul de la indexul n, lăsând elementul de la indexul m intact.

<p>False (B)</p> Signup and view all the answers

Care este operatorul folosit pentru a verifica dacă o valoare este diferită de o alta?

<p><code>!=</code> (sau <code>~=</code>, <code>^=</code> conform textului)</p> Signup and view all the answers

Operatorul ____ verifică dacă o valoare se află într-un interval.

<p>BETWEEN</p> Signup and view all the answers

Asociază operatorii cu operațiile corespunzătoare:

<p>** = Ridicare la putere *, / = Înmulțire, Împărțire +, -, || = Adunare, Scădere, Concatenare = = Egalitate</p> Signup and view all the answers

Care este operatorul de atribuire?

<p>:= (B)</p> Signup and view all the answers

Operatorul => este un separator de itemi.

<p>False (B)</p> Signup and view all the answers

Ce simbol se folosește pentru a delimita un comentariu pe mai multe linii?

<p>/* ... */</p> Signup and view all the answers

Operatorul _____ verifică dacă o valoare este NULL.

<p>IS NULL</p> Signup and view all the answers

Care dintre următorii operatori are cea mai mare prioritate în evaluarea unei expresii?

<p>** (A)</p> Signup and view all the answers

Ce se întâmplă cu instrucțiunea CONTINUE WHEN dacă condiția nu este adevărată?

<p>Instrucțiunea <code>CONTINUE WHEN</code> nu face nimic. (C)</p> Signup and view all the answers

Într-o buclă WHILE, condiția este evaluată o singură dată la începutul buclei.

<p>False (B)</p> Signup and view all the answers

Ce instrucțiune trebuie să existe într-o buclă WHILE pentru a preveni o buclă infinită?

<p>O instrucțiune care face condiția falsă sau nulă</p> Signup and view all the answers

Instrucțiunea ______ transferă controlul la o etichetă necondiționat.

<p>GOTO</p> Signup and view all the answers

Într-o buclă FOR fără REVERSE, cum se modifică indexul la fiecare iterație?

<p>Crește cu unu. (D)</p> Signup and view all the answers

Într-o buclă FOR cu REVERSE, dacă valoarea limitei superioare este mai mică decât valoarea limitei inferioare, instrucțiunile din interiorul buclei vor fi executate cel puțin o dată.

<p>False (B)</p> Signup and view all the answers

Ce instrucțiune poate fi utilizată pentru a încheia o buclă WHILE anticipat?

<p>EXIT sau EXIT WHEN</p> Signup and view all the answers

Instrucțiunea ______ doar transferă controlul la următoarea instrucțiune.

<p>NULL</p> Signup and view all the answers

Asociază instrucțiunea cu comportamentul corespunzător în interiorul unei bucle:

<p>EXIT = Încheie bucla imediat. CONTINUE = Trece la următoarea iterație a buclei. EXIT WHEN = Încheie bucla dacă o condiție este îndeplinită. CONTINUE WHEN = Trece la următoarea iterație dacă o condiție este îndeplinită.</p> Signup and view all the answers

Când este evaluată condiția în instrucțiunea CONTINUE WHEN?

<p>La fiecare întâlnire a instrucțiunii <code>CONTINUE WHEN</code>. (D)</p> Signup and view all the answers

Flashcards

Ce este PL/SQL?

PL/SQL este un limbaj de programare procedural care combină puterea de manipulare a datelor a SQL cu puterea de procesare a limbajelor procedurale.

Cum poate fi folosit SQL în PL/SQL?

PL/SQL permite executarea instrucțiunilor SQL din interiorul programului.

Cum poate fi descompus un program complex folosind PL/SQL?

PL/SQL facilitează descompunerea problemelor complexe în subprograme mai ușor de înțeles și de reutilizat.

Ce tipuri de date pot fi declarate în PL/SQL?

PL/SQL permite declararea de constante și variabile.

Signup and view all the flashcards

Care este unitatea de bază a unui program PL/SQL?

Blocul este unitatea de bază a unui program PL/SQL, grupând declarații și instrucțiuni.

Signup and view all the flashcards

Din ce părți poate fi format un bloc PL/SQL?

Orice blocuri PL/SQL pot conține o parte declarativă, o parte executabilă și o parte de tratare a excepțiilor.

Signup and view all the flashcards

Cum poate fi identificat un bloc PL/SQL?

Un bloc PL/SQL poate fi identificat printr-un label.

Signup and view all the flashcards

DELETE(n)

Șterge elementul cu indexul n din tabloul asociativ, dacă elementul există. În caz contrar, nu face nimic.

Signup and view all the flashcards

DELETE(m,n)

Șterge toate elementele din tabloul asociativ cu indexuri în intervalul m..n dacă m și n există și m <= n.

Signup and view all the flashcards

BETWEEN

Verifică dacă o valoare se află într-un interval dat.

Signup and view all the flashcards

IN

Verifică dacă o valoare se află într-o listă dată. Este specific pentru SQL.

Signup and view all the flashcards

LIKE

Verifică dacă o valoare se potrivește cu un anumit tipar, adesea folosit pentru verificare parțială de șiruri.

Signup and view all the flashcards

IS NULL

Verifică dacă o valoare este nulă.

Signup and view all the flashcards

':='

Operează o operație de atribuire a unei valori.

Signup and view all the flashcards

'=>'

Operează o operație de asociere a unei valori.

Signup and view all the flashcards

'%'

Indică un atribut specific.

Signup and view all the flashcards

'''

Delimitatorul șirurilor, folosit pentru selectarea componentelor.

Signup and view all the flashcards

Tipul de date RECORD

Tipul de date RECORD nu poate fi creat la nivel de schemă, nu poate fi un tip de date atribut ADT.

Signup and view all the flashcards

Definirea unui tip RECORD

Pentru a defini un tip RECORD, specificați numele înregistrării și definiți câmpurile sale. Pentru a defini un câmp, specificați numele câmpului și tipul său de date. Valoarea inițială a unui câmp este NULL.

Signup and view all the flashcards

Constrângerea NOT NULL

Constrângerea NOT NULL poate fi specificată pentru un câmp (trebuie specificată și o valoare inițială non-NULL). O valoare inițială non-NULL este opțională fără constrângerea NOT NULL.

Signup and view all the flashcards

Tipuri de inregistrare incompatibile

Un tip RECORD definit într-o specificație de pachet este incompatibil cu un tip RECORD local definit identic.

Signup and view all the flashcards

Utilizarea variabilelor RECORD

Variabilele RECORD nu sunt permise în lista SELECT, clauza WHERE, clauza GROUP BY sau în clauza ORDER BY.

Signup and view all the flashcards

Utilizarea variabilelor RECORD (cont.)

Variabilele RECORD sunt permise doar în aceste locuri: - Pe partea dreaptă a clauzei SET într-o instrucțiune UPDATE (este permisă doar o singură clauză SET în acest caz). Aceasta poate fi combinată cu cuvântul cheie "ROW" pe partea stângă. - În clauza VALUES a unei instrucțiuni INSERT - În subclauza INTO a unei clauze RETURN ING

Signup and view all the flashcards

Restricții inserții și actualizări

Restricții aplicabile inserțiilor și actualizărilor înregistrărilor: - Dacă clauza VALUES a unei instrucțiuni INSERT conține o variabilă RECORD, nu este permisă nicio altă variabilă sau valoare în clauză. - Dacă subclauza INTO a unei clauze RETURN ING conține o variabilă RECORD, nu este permisă nicio altă variabilă sau valoare în subclauză.

Signup and view all the flashcards

Neacceptarea unor operații cu RECORD-uri

Următoarele nu sunt acceptate: - Tipuri RECORD imbricate - Funcții care returnează un tip RECORD - Inserții și actualizări de RECORD-uri utilizând instrucțiunea EXECUTE IMMEDIATE (SQL dinamic).

Signup and view all the flashcards

Compatibilitatea tipurilor

Motorul PL/SQL se ocupă de compatibilitatea tipurilor, astfel încât, atâta timp cât instrucțiunile noastre utilizează tipurile corecte, totul este în regulă.

Signup and view all the flashcards

Ce este un cursor explicit?

Un cursor explicit este un obiect PL/SQL utilizat pentru a controla accesul la un set de rezultate al unei interogări. Este definit de dezvoltator și permite o manipulare mai fină a datelor, comparativ cu cursorul implicit.

Signup and view all the flashcards

Cum accesez datele din setul de rezultate?

Instrucțiunea FETCH este folosită pentru a accesa rândurile din setul de rezultate asociat unui cursor explicit. Aceasta preia datele din rândul curent și le stochează în variabile.

Signup and view all the flashcards

Cum declar variabilele pentru FETCH?

Atributele %TYPE și %ROWTYPE ajută la declararea variabilelor și înregistrărilor pentru utilizarea în instrucțiunile FETCH. %TYPE se referă la tipul de date al unei coloane, în timp ce %ROWTYPE se referă la structura unei linii din setul de rezultate.

Signup and view all the flashcards

Cum închid un cursor?

Instrucțiunea CLOSE închide un cursor explicit, eliberând resursele alocate. După închidere, cursorul nu mai poate fi utilizat pentru a prelua date sau a accesa atributele sale.

Signup and view all the flashcards

Cum verific dacă un cursor este deschis?

Atributul %ISOPEN verifică dacă un cursor explicit este deschis (TRUE) sau închis (FALSE). Acest lucru este util pentru a evita erori sau comportament neașteptat al programului.

Signup and view all the flashcards

CONTINUE WHEN în buclele WHILE

Instrucțiunea CONTINUE WHEN evaluează condiția din clauza WHEN la fiecare iterație a buclei WHILE. Dacă condiția este adevărată, execuția buclei continuă la următoarea iterație. Dacă condiția este falsă, execuția continuă cu următoarea instrucțiune din buclă.

Signup and view all the flashcards

Buclă WHILE

Instrucțiunea WHILE LOOP execută una sau mai multe instrucțiuni cât timp o condiție este adevărată. Dacă condiția este adevărată, instrucțiunile sunt executate și controlul revine la începutul buclei unde condiția este reevaluată. Buclele WHILE se opresc când condiția este falsă.

Signup and view all the flashcards

Buclă FOR

Instrucțiunea FOR LOOP execută una sau mai multe instrucțiuni în timp ce indexul buclei se află într-un interval specificat. Fără REVERSE, indexul începe de la limita inferioară și crește cu unu la fiecare iterație a buclei până când ajunge la limita superioară. Cu REVERSE, indexul începe de la limita superioară și scade cu unu la fiecare iterație a buclei până când ajunge la limita inferioară.

Signup and view all the flashcards

Instrucțiunea GOTO

Instrucțiunea GOTO transferă controlul necondiționat către o etichetă. Poate fi folosită pentru a ieși dintr-o buclă.

Signup and view all the flashcards

Instrucțiunea NULL

O instrucțiune null nu are niciun efect. Este o instrucțiune goală.

Signup and view all the flashcards

EXIT WHEN în buclele WHILE

Instrucțiunea EXIT WHEN evaluează o condiție la fiecare iterație a buclei WHILE. Dacă condiția este adevărată, bucla WHILE se oprește imediat. Dacă condiția este falsă, execuția continuă cu următoarea instrucțiune din buclă.

Signup and view all the flashcards

CONTINUE in buclele WHILE

Instrucțiunea CONTINUE evaluează o condiție la fiecare iterație a buclei WHILE. Dacă condiția este adevărată, execuția buclei continuă la următoarea iterație. Dacă condiția este falsă, execuția continuă cu următoarea instrucțiune din buclă. Diferența dintre CONTINUE și CONTINUE WHEN este că CONTINUE testează condiția la fiecare iterație a buclei WHILE, în timp ce CONTINUE WHEN testează condiția doar când instrucțiunea CONTINUE WHEN este executată.

Signup and view all the flashcards

EXIT în buclele WHILE

Instrucțiunea EXIT oprește imediat execuția buclei WHILE.

Signup and view all the flashcards

EXIT WHEN în buclele FOR

Instrucțiunea EXIT WHEN evaluează o condiție la fiecare iterație a buclei FOR. Dacă condiția este adevărată, bucla FOR se oprește imediat. Dacă condiția este falsă, execuția continuă cu următoarea instrucțiune din buclă.

Signup and view all the flashcards

CONTINUE în buclele FOR

Instrucțiunea CONTINUE evaluează o condiție la fiecare iterație a buclei FOR. Dacă condiția este adevărată, execuția buclei continuă la următoarea iterație. Dacă condiția este falsă, execuția continuă cu următoarea instrucțiune din buclă.

Signup and view all the flashcards

More Like This

Sintaxis de cursores en PL/SQL
10 questions
Tema 24. PL/SQL en Oracle
30 questions
PL/SQL Programming Language
5 questions

PL/SQL Programming Language

RetractableSine8681 avatar
RetractableSine8681
PL/SQL Cursor FOR LOOP
16 questions

PL/SQL Cursor FOR LOOP

HeroicCornflower avatar
HeroicCornflower
Use Quizgecko on...
Browser
Browser