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 de l_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 de customers -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 de customers en contacts 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

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *