PL / SQL SELECT INTO (Svenska)
Sammanfattning: i denna handledning lär du dig hur du använder PL / SQL SELECT INTO
uttalande för att hämta data från en enda rad från en tabell till variabler.
PL / SQL SELECT INTO
uttalande är det enklaste och snabbaste sättet att hämta en enda rad från en tabell till variabler. Följande illustrerar syntaxen för PL / SQL SELECT INTO
uttalande:
I denna syntax, antalet kolumner i variable_list
måste vara samma som antalet variabler (eller antalet komponenter i en post) i select_list
. Dessutom måste deras motsvarande datatyp vara kompatibel.
Förutom WHERE
-satsen kan du använda andra satser i SELECT
uttalande som INNER JOIN
, GROUP BY
, HAVING
och UNION
.
Om uttalandet SELECT
returnerar mer än en rad kommer Oracle att höja TOO_MANY_ROWS
undantag. Om SELECT
uttalandet inte returnerar någon rad kommer Oracle att höja undantaget NO_DATA_FOUND
.
PL / SQL SELECT INTE exempel
Låt oss använda tabellerna customers
och contacts
i exempeldatabasen för demonstration.
A) PL / SQL SELECT INTO – välj ett kolumnexempel
I följande exempel används en SELECT INTO
för att få namnet på en kund baserat på kund-id, vilket är den primära nyckeln till customers
tabell.
I det här exemplet:
- Förklara först en variabel
l_customer_name
vars datatyp ankar till namnkolumnerna i kundtabellen. Denna variabel kommer att innehålla kundnamnet. - För det andra, använd
SELECT INTO
för att välja värde från namnkolumnen och tilldela det tilll_customer_name
variabel. - För det tredje, visa kundnamnet med
dbms_output.put_line
proceduren.
Eftersom customers
tabellen har bara en rad med kund-ID 100, kodblocket visade kundnamnet.
Om det fanns ingen sådan rad, kodblocket skulle misslyckas med ett obehandlat NO_DATA_FOUND
undantag.
B) PL / SQL VÄLJ IN – välj ett komplett radexempel
Följande exempel hämtar hela raden från tabellen customers
för ett specifikt kund-ID:
Här är utdata:
I det här exemplet:
- Först förklara en post baserad på raden i
customers
bord. Den här posten innehåller hela raden icustomers
-tabellen. - För det andra, välj kunden vars id är 100 i
r_customer
post. - För det tredje, visa kundens namn och webbplats.
C) PL / SQL SELECT INTO – välj data i exempel på flera variabler
Följande exempel hämtar kundernas och kontaktens namn från tabellerna customers
och contacts
Oracle gav följande utdata:
I det här exemplet:
- Först, förklara tre variabler
l_customer_name
,l_contact_first_name
,l_contact_last_name
för att hålla kundens och kontaktens namn. - Använd för det andra uttalandet
SELECT INTO
för att hämta kund- och kontaktnamn på kund-id 100 fråncustomers
ochcontacts
tabeller till motsvarande variabler -
l_customer_name
,l_contact_first_name
,l_contact_last_name
. - För det tredje, visa kund- och kontaktnamn.
PL / SQL VÄLJ TILL vanliga fel
Om antalet kolumner och uttryck i SELECT
klausul är större än antalet variabler i INTO
-klausulen, Oracle ger detta fel:
Oracle ger följande fel om antalet kolumner och uttryck i SELECT
-satsen är mindre än antalet variabler i INTO
-satsen:
Om antalet variabler och element i vallistan är desamma, men deras motsvarande datatyper inte är kompatibla så att Oracle inte implicit kan konvertera från en typ till den andra. Det kommer att utfärda följande fel:
Nu borde du veta hur du använder PL / SQL SELECT INTO
uttalande för att hämta en enda rad från en tabell till variabler.
- Hjälpte den här självstudien?
- Ja Nej