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_namevars datatyp ankar till namnkolumnerna i kundtabellen. Denna variabel kommer att innehålla kundnamnet. - För det andra, använd
SELECT INTOför att välja värde från namnkolumnen och tilldela det tilll_customer_namevariabel. - För det tredje, visa kundnamnet med
dbms_output.put_lineproceduren.
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
customersbord. Den här posten innehåller hela raden icustomers-tabellen. - För det andra, välj kunden vars id är 100 i
r_customerpost. - 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_nameför att hålla kundens och kontaktens namn. - Använd för det andra uttalandet
SELECT INTOför att hämta kund- och kontaktnamn på kund-id 100 fråncustomersochcontactstabeller 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