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-o l_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 tabelului customers.
  • Î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 din customers și contacts 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

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *