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_name
hvis 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
customers
bord. Denne posten inneholder hele raden icustomers
-tabellen. - For det andre, velg kunden hvis id er 100 i
r_customer
post. - 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_name
for å beholde kundens og kontaktens navn. - For det andre, bruk
SELECT INTO
uttalelsen for å hente kunde- og kontaktnavn på kunde-id 100 fracustomers
ogcontacts
tabeller 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