Folosirea seturilor la lucrul cu SQL dinamic
Lucrul cu tipurile de date complexe Agregatele și colecțiile BULK îmbunătățesc performanța prin minimizarea numărului de comutatoare de context dintre PL / SQL și SQL. Adică, colecțiile întregi, și nu doar elementele individuale, sunt transmise înainte și înapoi.
Cu următoarele comenzi și atribute cursor, puteți construi SQL dinamic într-un mod care efectuată în mod corespunzător lucrul cu tablouri și colecții.
Sintaxă pentru legarea dinamică folosind instrucțiunea BULK
Instrucțiunea BULK permite Oracle să execute o variabilă în SQL. asa. pentru a procesa seturi de valori. Tipul setului poate fi orice valabil în PL / SQL (tabele index, tabele imbricate și tablouri cu mărime variabilă). Cu toate acestea, elementele trebuie să aibă un tip strict de date SQL, CHAR. DATE sau NUMBER. Colecțiile dinamice pot fi utilizate în comenzi: EXECUTE IMMEDIATE. FETCH și FORALL.
EXECUTĂ IMEDIAT și BULK
Acești operatori vă permit să legați variabilele specificate sau argumentele OUT și să le transmiteți ca parametri în instrucțiunea dinamică SQL. Sintaxa este după cum urmează:
Datorită instrucțiunii BULK, puteți returna datele colecțiilor din SQL dinamic.
BULK și FETCH
BULK vă permite să selectați date din cursorul dinamic în același mod ca și selectarea dintr-un cursor static. Sintaxa este după cum urmează:
Dacă numărul de variabile definite în COLORECT IN BUL. depășește numărul de coloane din interogare, Oracle emite o eroare.
Această sintaxă vă permite să legați variabilele de intrare de SQL dinamic. În plus, puteți utiliza EXECUTE
Un șir dinamic poate fi INSERT. UPDATE sau DELETE (dar nu SELECT).
Exemple de SQL dinamic folosind BULK
Următorul exemplu demonstrează utilizarea VULNERULUI la ieșirea datelor pentru a deschide matricele folosind FETCH
Utilizarea actualizării în masă a înregistrărilor împreună cu rezultatul returnat este plasată în colecția enames.
Exemplul arată cum se utilizează FORALL și UTILIZARE.