PL / SQL SELECT INTO (Română)
Rezumat: în acest tutorial, veți afla cum să utilizați PL / SQL SELECT INTO
pentru a prelua date dintr-un singur rând dintr-un tabel în variabile.
PL / SQL SELECT INTO
declarația este cel mai simplu și mai rapid mod de a prelua un singur rând dintr-un tabel în variabile. Următoarele ilustrează sintaxa declarației PL / SQL SELECT INTO
:
În această sintaxă, numărul de coloanele din variable_list
trebuie să fie identice cu numărul de variabile (sau numărul de componente ale unei înregistrări) din select_list
. În plus, tipul lor de date corespunzător trebuie să fie compatibil.
Pe lângă clauza WHERE
, puteți utiliza alte clauze în SELECT
declarație precum INNER JOIN
, GROUP BY
, HAVING
și UNION
.
Dacă instrucțiunea SELECT
returnează mai mult de un rând, Oracle va ridica TOO_MANY_ROWS
excepție. Dacă instrucțiunea SELECT
nu returnează niciun rând, Oracle va ridica excepția NO_DATA_FOUND
.
PL / SQL SELECT ÎN exemple
Să folosim tabelele customers
și contacts
din baza de date eșantion pentru demonstrare.
A) PL / SQL SELECT INTO – selectarea unui exemplu de coloană
Următorul exemplu folosește o instrucțiune SELECT INTO
pentru a obține numele unui client pe baza codului clientului, care este cheia principală a customers
tabel.
În acest exemplu:
- Mai întâi, declarați o variabilă
l_customer_name
al cărei tip de date ancore la coloanele de nume din tabelul clienților. Această variabilă va conține numele clientului. - În al doilea rând, utilizați declarația
SELECT INTO
pentru a selecta valoarea din coloana nume și atribuiți-ol_customer_name
variabilă. - În al treilea rând, afișați numele clientului utilizând procedura
dbms_output.put_line
.
Deoarece Tabelul customers
are un singur rând cu ID client 100, blocul de cod afișând numele clientului.
Dacă nu a existat un astfel de rând, blocul de cod ar eșua cu o excepție NO_DATA_FOUND
nesoluționată.
B) PL / SQL SELECT INTO – selectarea unui exemplu de rând complet
Următorul exemplu preluează întregul rând din tabelul customers
pentru un ID client specific:
Iată rezultatul:
În acest exemplu:
- Mai întâi, declarați o înregistrare bazată pe rândul
customers
masă. Această înregistrare va conține întregul rând al tabeluluicustomers
. - În al doilea rând, selectați clientul al cărui cod este 100 în
r_customer
record. - În al treilea rând, arătați numele și site-ul clientului.
C) PL / SQL SELECT INTO – selectarea datelor în exemple de variabile multiple
Următorul exemplu preia numele clientului și contactul din tabelele customers
și contacts
pentru un anumit cod de client.
Oracle a emis următoarea ieșire:
În acest exemplu:
- Mai întâi, declarați trei variabile
l_customer_name
,l_contact_first_name
,l_contact_last_name
pentru a păstra numele clientului și numele persoanei de contact. - În al doilea rând, utilizați declarația
SELECT INTO
pentru a prelua numele clientului și numele de contact ale clientului ID 100 dincustomers
șicontacts
tabele în variabilele corespunzătoare -
l_customer_name
,l_contact_first_name
,l_contact_last_name
. - În al treilea rând, afișați numele clienților și persoanelor de contact.
PL / SQL SELECT INTO common errors
Dacă numărul de coloane și expresia din SELECT
clauza este mai mare decât numărul de variabile din clauza INTO
, Oracle emite această eroare:
Oracle emite următoarea eroare dacă numărul de coloane și expresia din clauza SELECT
este mai mic decât numărul de variabile din clauza INTO
:
Dacă numărul de variabile și element din lista de selectare sunt aceleași, dar tipurile lor de date corespunzătoare nu sunt compatibile, astfel încât Oracle nu poate converti implicit dintr-un tip în celălalt. Va emite următoarea eroare:
Acum, ar trebui să știți cum să utilizați PL / SQL SELECT INTO
declarație pentru a prelua un singur rând dintr-un tabel în variabile.
- A fost util acest tutorial?
- Da Nu