PL / SQL SELECT INTO (Norsk)
Sammendrag: i denne opplæringen lærer du hvordan du bruker PL / SQL SELECT INTO setning for å hente data fra en enkelt rad fra en tabell til variabler.
PL / SQL SELECT INTO setning er den enkleste og raskeste måten å hente en enkelt rad fra en tabell til variabler. Følgende illustrerer syntaksen til PL / SQL SELECT INTO utsagnet:
I denne syntaksen er antallet kolonnene i variable_list må være det samme som antall variabler (eller antall komponenter i en post) i select_list. I tillegg må den tilhørende datatypen være kompatibel.
Foruten WHERE klausulen, kan du bruke andre klausuler i SELECT uttalelse som INNER JOIN, GROUP BY, HAVING og UNION.
Hvis SELECT -uttalelsen returnerer mer enn en rad, vil Oracle heve TOO_MANY_ROWS unntak. Hvis SELECT -uttalelsen ikke returnerer noen rad, vil Oracle heve NO_DATA_FOUND unntaket.
PL / SQL SELECT INN til eksempler
La oss bruke customers og contacts tabellene i eksempeldatabasen for demonstrasjon.
A) PL / SQL SELECT INTO – velg et kolonneeksempel
Følgende eksempel bruker en SELECT INTO uttalelse for å få navnet på en kunde basert på kunde-id, som er den primære nøkkelen til customers tabell.
I dette eksemplet:
- Forklar først en variabel
l_customer_namehvis datatype ankrer til navnekolonnene i kundetabellen. Denne variabelen inneholder kundenavnet. - For det andre, bruk
SELECT INTO-uttalelsen for å velge verdi fra navnekolonnen og tilordne den till_customer_name-variabel. - For det tredje, vis kundenavnet ved hjelp av
dbms_output.put_line-prosedyren.
Fordi customers tabellen har bare en rad med kunde-ID 100, kodeblokken viste kundenavnet.
Hvis det var ingen slik rad, kodeblokken ville mislykkes med et uhåndtert NO_DATA_FOUND unntak.
B) PL / SQL VELG INN – velg et komplett radeksempel
Følgende eksempel henter hele raden fra customers -tabellen for en bestemt kunde-ID:
Her er utdataene:
I dette eksemplet:
- Først erklærer du en post basert på raden i
customersbord. Denne posten inneholder hele raden icustomers-tabellen. - For det andre, velg kunden hvis id er 100 i
r_customerpost. - For det tredje, vis kundens navn og nettsted.
C) PL / SQL SELECT INTO – velg data i flere variabler, eksempel
Følgende eksempel henter navnene på kunden og kontakten fra customers og contacts tabellene for en spesifikk kunde-id.
Oracle ga følgende utdata:
I dette eksemplet:
- Forklar først tre variabler
l_customer_name,l_contact_first_name,l_contact_last_namefor å beholde kundens og kontaktens navn. - For det andre, bruk
SELECT INTOuttalelsen for å hente kunde- og kontaktnavn på kunde-id 100 fracustomersogcontactstabeller til de tilsvarende variablene -
l_customer_name,l_contact_first_name,l_contact_last_name. - For det tredje, vis kunde- og kontaktnavn.
PL / SQL VALG TIL vanlige feil
Hvis antall kolonner og uttrykk i SELECT klausul er større enn antall variabler i INTO klausul, Oracle utsteder denne feilen:
Oracle utsteder følgende feil hvis antall kolonner og uttrykk i SELECT -satsen er mindre enn antall variabler i INTO -satsen:
Hvis antall variabler og element i listen er det samme, men deres tilsvarende datatyper ikke er kompatible, slik at Oracle ikke implisitt kan konvertere fra en type til den andre. Den vil utstede følgende feil:
Nå bør du vite hvordan du bruker PL / SQL SELECT INTO uttalelse for å hente en enkelt rad fra en tabell til variabler.
- Var denne veiledningen nyttig?
- JaNei