PL / SQL SELECT INTO
Samenvatting: in deze tutorial leert u hoe u de PL / SQL SELECT INTO
instructie om gegevens van een enkele rij uit een tabel op te halen in variabelen.
PL / SQL SELECT INTO
-instructie is de eenvoudigste en snelste manier om een enkele rij op te halen van een tabel naar variabelen. Het volgende illustreert de syntaxis van de PL / SQL SELECT INTO
-instructie:
In deze syntaxis is het aantal kolommen in de variable_list
moeten hetzelfde zijn als het aantal variabelen (of het aantal componenten van een record) in de select_list
. Bovendien moet hun overeenkomende gegevenstype compatibel zijn.
Naast de WHERE
-clausule, kunt u andere clausules gebruiken in de SELECT
-instructie zoals INNER JOIN
, GROUP BY
, HAVING
en UNION
.
Als de instructie SELECT
meer dan één rij retourneert, verhoogt Oracle de TOO_MANY_ROWS
uitzondering. Als de SELECT
-instructie geen enkele rij retourneert, zal Oracle de NO_DATA_FOUND
uitzondering verhogen.
PL / SQL SELECT IN voorbeelden
Laten we de customers
en contacts
tabellen in de voorbeelddatabase gebruiken voor demonstratie.
A) PL / SQL SELECTEER IN – een kolomvoorbeeld selecteren
In het volgende voorbeeld wordt een SELECT INTO
-instructie gebruikt om de naam van een klant te krijgen op basis van de klant-id, de primaire sleutel van de customers
tabel.
In dit voorbeeld:
- Declareer eerst een variabele
l_customer_name
waarvan het gegevenstype verankert aan de naamkolommen van de klantentabel. Deze variabele bevat de naam van de klant. - Ten tweede, gebruik de instructie
SELECT INTO
om een waarde uit de naamkolom te selecteren en wijs deze toe aan del_customer_name
variabele. - Ten derde, toon de naam van de klant met behulp van de
dbms_output.put_line
procedure.
Omdat de customers
tabel heeft slechts één rij met klant-ID 100, het codeblok gaf de klantnaam weer.
Als een dergelijke rij niet bestond, zou het codeblok mislukken met een onverwerkte NO_DATA_FOUND
uitzondering.
B) PL / SQL SELECTEER IN – een compleet rijvoorbeeld selecteren
In het volgende voorbeeld wordt de hele rij opgehaald uit de tabel customers
voor een specifieke klant-ID:
Hier is de output:
In dit voorbeeld:
- Declareer eerst een record op basis van de rij van de
customers
tafel. Dit record bevat de hele rij van decustomers
-tabel. - Ten tweede, selecteer de klant wiens ID 100 is in de
r_customer
record. - Ten derde, toon de naam en website van de klant.
C) PL / SQL SELECTEER IN – gegevens selecteren in voorbeeld van meerdere variabelen
In het volgende voorbeeld worden de namen van de klant en contactpersoon opgehaald uit de tabellen customers
en contacts
voor een specifieke klant-ID.
Oracle heeft de volgende uitvoer uitgegeven:
In dit voorbeeld:
- Declareer eerst drie variabelen
l_customer_name
,l_contact_first_name
,l_contact_last_name
om de naam van de klant en contactpersoon vast te houden. - Gebruik ten tweede de instructie
SELECT INTO
om de klant- en contactnamen van de klant-ID 100 op te halen uit decustomers
encontacts
tabellen in de overeenkomstige variabelen -
l_customer_name
,l_contact_first_name
,l_contact_last_name
. - Ten derde, geef de klant- en contactnamen.
PL / SQL SELECTEER IN veelvoorkomende fouten
Als het aantal kolommen en uitdrukking in de SELECT
clausule groter is dan het aantal variabelen in de INTO
clausule, geeft Oracle deze foutmelding:
Oracle geeft de volgende foutmelding als het aantal kolommen en expressie in de SELECT
-clausule kleiner is dan het aantal variabelen in de INTO
-clausule:
Als het aantal variabelen en het element in de selectielijst hetzelfde is, maar hun corresponderende datatypes niet compatibel zijn, zodat Oracle niet impliciet kan converteren van het ene type naar de andere. Het geeft de volgende foutmelding:
Nu zou u moeten weten hoe u de PL / SQL SELECT INTO
instructie om een enkele rij uit een tabel op te halen in variabelen.
- Was deze tutorial nuttig?
- JaNee