PL / SQL SELECT INTO (Dansk)
Resume: i denne vejledning lærer du, hvordan du bruger PL / SQL SELECT INTO
sætning for at hente data fra en enkelt række fra en tabel i variabler.
PL / SQL SELECT INTO
udsagn er den enkleste og hurtigste måde at hente en enkelt række på fra en tabel til variabler. Følgende illustrerer syntaksen for PL / SQL SELECT INTO
udsagnet:
I denne syntaks er antallet af kolonner i variable_list
skal være det samme som antallet af variabler (eller antallet af komponenter i en post) i select_list
. Derudover skal deres tilsvarende datatype være kompatibel.
Udover WHERE
-klausulen kan du bruge andre klausuler i SELECT
udsagn som INNER JOIN
, GROUP BY
, HAVING
og UNION
.
Hvis SELECT
-udtalelsen returnerer mere end en række, hæver Oracle TOO_MANY_ROWS
undtagelse. Hvis sætningen SELECT
ikke returnerer nogen række, hæver Oracle undtagelsen NO_DATA_FOUND
.
PL / SQL SELECT IND I eksempler
Lad os bruge tabellerne customers
og contacts
i eksempeldatabasen til demonstration.
A) PL / SQL SELECT INTO – vælg et kolonneeksempel
Følgende eksempel bruger en SELECT INTO
-erklæring for at få navnet på en kunde baseret på kunde-idet, som er den primære nøgle til customers
tabel.
I dette eksempel:
- Erklær først en variabel
l_customer_name
hvis datatype forankrer til navnesøjlerne i kundetabellen. Denne variabel holder kundenavnet. - For det andet skal du bruge
SELECT INTO
-sætningen til at vælge værdi fra navnesøjlen og tildele den till_customer_name
-variabel. - For det tredje skal du vise kundens navn ved hjælp af
dbms_output.put_line
-proceduren.
Fordi customers
-tabellen har kun en række med kunde-id 100, kodeblokken viste kundens navn.
Hvis der var ingen sådan række, kodeblokken mislykkedes med en uhåndteret NO_DATA_FOUND
undtagelse.
B) PL / SQL VÆLG INTO – vælg et komplet rækkeeksempel
Følgende eksempel henter hele rækken fra customers
-tabellen til et specifikt kunde-id:
Her er output:
I dette eksempel:
- Forklar først en post baseret på rækken i
customers
tabel. Denne post holder hele rækken icustomers
-tabellen. - For det andet skal du vælge den kunde, hvis id er 100, i
r_customer
record. - For det tredje skal du vise kundens navn og websted.
C) PL / SQL SELECT INTO – valg af data i flere variabler, eksempel
Følgende eksempel henter navnene på kunden og kontakten fra tabellerne customers
og contacts
til et specifikt kunde-id.
Oracle udsendte følgende output:
I dette eksempel:
- Erklær først tre variabler
l_customer_name
,l_contact_first_name
,l_contact_last_name
for at holde kundens og kontaktens navn. - Brug for det andet
SELECT INTO
udsagn til at hente kunde- og kontaktnavne på kunde-id 100 fracustomers
ogcontacts
tabeller i de tilsvarende variabler -
l_customer_name
,l_contact_first_name
,l_contact_last_name
. - For det tredje skal du vise kunde- og kontaktnavne.
PL / SQL VÆLG I almindelige fejl
Hvis antallet af kolonner og udtryk i SELECT
klausul er større end antallet af variabler i INTO
klausul, Oracle udsteder denne fejl:
Oracle udsender følgende fejl, hvis antallet af kolonner og udtryk i SELECT
-sætningen er mindre end antallet af variabler i INTO
-sætningen:
Hvis antallet af variabler og element på listen er det samme, men deres tilsvarende datatyper ikke er kompatible, så Oracle ikke implicit kan konvertere fra en type til den anden. Det udsteder følgende fejl:
Nu skal du vide, hvordan du bruger PL / SQL SELECT INTO
erklæring for at hente en enkelt række fra en tabel til variabler.
- Var denne tutorial nyttig?
- JaNej