PL /SQL Hurtig Guide

PL /SQL programmeringsspråk ble utviklet av Oracle Corporation i slutten av 1980 som prosedyre forlengelse språk for SQL og Oracle relasjonsdatabase. Følgende er bemerkelsesverdige fakta om PL /SQL:

PL /SQL er en helt bærbar, høy ytelse transaksjonsprosessering språk

PL /SQL gir. en innebygd tolket og OS uavhengig programmeringsmiljø.

PL /SQL kan også direkte kalles fra kommandolinjen SQL * Plus grensesnitt.

Direkte samtale kan også gjøres fra eksterne programmeringsspråk samtaler til databasen.

PL /SQL generelle syntaksen er basert på at av ADA og Pascal programmeringsspråk.

Bortsett fra Oracle, er PL /SQL tilgjengelig i . TimesTen in-memory database og IBM DB2

PL /SQL - Miljø Setup

PL /SQL er ikke et frittstående programmeringsspråk; Det er et verktøy i Oracle programmeringsmiljøet. SQL * Plus er et interaktivt verktøy som lar deg skrive SQL og PL /SQL-setninger ved ledeteksten. Disse kommandoer blir så sendt til databasen for behandling. Når uttalelsene er behandlet, blir resultatene sendt tilbake og vises på skjermen.

For å kjøre PL /SQL-programmer, bør du ha Oracle RBDMS Server installert på maskinen din som vil ta seg av å utføre SQL-kommandoer. Nyeste versjonen av Oracle RDBMS er 11g. Du kan laste ned en prøveversjon av Oracle 11g fra følgende link:

Last ned Oracle 11g Express Edition

Du må laste ned enten 32bit eller 64 bit versjon av installasjonen som per ditt operativsystem . Vanligvis er det to filer, som jeg har lastet ned for 64 bit Windows7. Du vil også bruke tilsvarende trinn av operativsystemet, spiller ingen rolle om det er Linux eller Solaris.

win64_11gR2_database_1of2.zip



win64_11gR2_database_2of2.zip



After laster ned over to filer, må du pakke dem i en enkelt katalog database Anmeldelser og under at du vil finne følgende underkataloger: største nettstedene slutt klikker du på setup Anmeldelser filen for å starte installasjonen og følg de gitte trinn til slutten. Hvis alt har blitt gjort med hell deretter sin tid for å kontrollere installasjonen. På bruke ledeteksten følgende kommando hvis du bruker Windows:
sqlplus "/som SYSDBA"

Hvis alt er i orden, bør du ha SQL teksten der du vil skrive dine PL /SQL-kommandoer og skript:

Text Editor

Kjøre store programmer fra kommandolinjen kan lande deg i utilsiktet å miste noe av arbeidet. Så et bedre alternativ er å bruke kommandofiler. Slik bruker du kommandofiler:

Skriv inn koden din i et tekstredigeringsprogram, for eksempel Notisblokk, Notepad +, eller EditPlus, etc.

Lagre filen med sql forlengelse i hjemmekatalogen.

Launch SQL * Plus ledeteksten fra katalogen der du opprettet PL /SQL-fil.

Skrivfile_name på SQL * Plus ledetekst for å kjøre programmet.

Hvis du ikke bruker en fil for å utføre PL /SQL-skript, så bare kopiere PL /SQL-kode og deretter høyreklikk på det sorte vinduet ha SQL rask og bruke lim
muligheten til å lime inn hele koden ved ledeteksten. Til slutt, bare trykk enter for å utføre koden, hvis det ikke allerede er utført

PL /SQL -. Basic Syntax

PL /SQL er en blokk strukturert språk, noe som betyr at PL /SQL Programmene er delt og skrevet i logiske blokker av kode. Hver blokk består av tre underdeler:
SN
Avsnitt & Beskrivelse
en Erklæringer

Denne delen starter med søkeordet ERKLÆRER
. Det er en valgfri del og definerer alle variabler, pekere, underprogrammer og andre elementer som skal brukes i programmet.
2 Kjørbar Kommandoer

Denne delen er vedlagt mellom søkeordene BEGIN Hotell og END Hotell og det er en obligatorisk del. Den består av de kjør PL /SQL-setninger i programmet. Det bør ha minst én kjørbar linje med kode, som kan være bare en NULL kommando for å vise at ingenting skulle bli henrettet.
3 Unntak håndtering

Denne delen starter med søkeordet UNNTAK
. Denne delen er igjen valgfritt og inneholder unntak (e) som håndterer feil i programmet

Hver PL /SQL-setning avsluttes med et semikolon . (;)
. PL /SQL-blokker kan nestes innenfor andre PL /SQL blokker ved hjelp av BEGIN Hotell og END
. Her er den grunnleggende strukturen i en PL /SQL blokk:
ERKLÆRER < erklæringer delen > BEGIN < kjørbar kommando (s) > UNNTAK < unntakshåndtering > END;
The 'Hello World' Eksempel:
ERKLÆRER melding varchar2 (20): = '! Hello, World'; BEGIN dbms_output.put_line (melding), END; /

end;
linje signaliserer slutten av PL /SQL blokk . Å kjøre kode fra SQL kommandolinjen, kan det hende du må skrive /
ved begynnelsen av den første blank linje etter siste linje av koden. Når ovennevnte koden kjøres på SQL teksten, produserer det følgende resultat:
Hei WorldPL /SQL-prosedyren ble fullført

PL /SQL - datatyper

PL /SQL-variabler, konstanter og parametre må. har en gyldig datatype som angir et lagringsformat, begrensninger, og gyldig verdiområde. Denne opplæringen vil ta deg gjennom SCALAR Hotell og LOB
typer data tilgjengelig i PL /SQL og to andre datatyper vil bli dekket i andre kapitler.
Kategori
Beskrivelse
ScalarSingle verdier med ingen interne komponenter, for eksempel et nummer, dato, eller BOOLEAN.Large Object (LOB) Pekere til store objekter som er lagret separat fra andre dataelementer, for eksempel tekst, grafiske bilder, videoklipp, og lyd bølgeformer. CompositeData elementer som har interne komponenter som kan nås individuelt. For eksempel, samlinger og poster. ReferencePointers til andre dataelementer
PL /SQL Scalar datatyper og Subtyper

PL /SQL Skalar datatyper og Subtyper kommer inn under følgende kategorier:.
Dato Type
Beskrivelse
NumericNumeric verdiene som aritmetiske operasjoner er performed.CharacterAlphanumeric verdier som representerer enkelttegn eller strenger av characters.BooleanLogical verdiene som logiske operasjoner utføres. DatetimeDates og tider.

PL /SQL gir subtyper av datatyper. For eksempel har datatypen NUMBER en subtype kalt heltall. Du kan bruke undertyper i PL /SQL-programmet for å gjøre datatyper som er kompatible med datatyper i andre programmer mens embedding PL /SQL-kode i et annet program, for eksempel et Java-program.

PL /SQL Numerisk datatyper og Subtyper

Følgende er detaljene i PL /SQL forhåndsdefinerte typer numeriske data og deres undertyper:
Datatype
Beskrivelse
PLS_INTEGERSigned heltall innenfor rekkevidde -2,147,483,648 gjennom 2147483647, representert i 32 bitsBINARY_INTEGERSigned heltall innenfor rekkevidde -2,147,483,648 gjennom 2147483647, representert i 32 bitsBINARY_FLOATSingle presisjon IEEE 754-format flyttalls numberBINARY_DOUBLEDouble presisjon IEEE 754-format flyttalls numberNUMBER (prec, skala) fast punkt eller flyttall nummer med absoluttverdi i serien 1E-130 til (men ikke inkludert) 1.0E126. ET NUMMER variabel kan også representere 0.DEC (prec, skala) ANSI bestemt fast punkt type med maksimal presisjon på 38 desimal digits.DECIMAL (prec, skala) IBM bestemt fast punkt type med maksimal presisjon på 38 desimal digits.NUMERIC ( pre, secale) Flytende type med maksimal presisjon på 38 desimal digits.DOUBLE PRECISIONANSI bestemt flyt type med maksimal presisjon av 126 binære siffer (ca. 38 desimale sifre) FLOATANSI og IBM bestemt flyttalls type med maksimal presisjon av 126 binære siffer ( ca 38 desimalar) INTANSI bestemt heltall type med maksimal presisjon på 38 desimal digitsINTEGERANSI og IBM bestemt heltall type med maksimal presisjon på 38 desimal digitsSMALLINTANSI og IBM bestemt heltall type med maksimal presisjon på 38 desimal digitsREALFloating-punkts type med maksimal presisjon på 63 binære siffer (ca 18 desimalar)

Følgende er et gyldig erklæring:
ERKLÆRER num1 INTEGER; num2 REAL; num3 dobbel presisjon; BEGIN null; END; /

Når koden ovenfor er kompilert og henrettet, gir det følgende resultat:
PL /SQL-prosedyren ble fullført
PL /SQL Character datatyper og Subtyper

Følgende er detaljene i PL /SQL forhåndsdefinerte datategntyper og deres undertyper:
Datatype
Beskrivelse
CHARFixed lengde tegnstreng med maksimal størrelse på 32 767 bytesVARCHAR2Variable -Lengde tegnstreng med maksimal størrelse på 32 767 bytesRAWVariable-lengde binær eller byte streng med maksimal størrelse på 32,767 bytes, ikke kan tolkes av PL /SQLNCHARFixed lengde nasjonale tegnstreng med maksimal størrelse på 32 767 bytesNVARCHAR2Variable lengde nasjonale tegnstreng med maksimal størrelse på 32 767 bytesLONGVariable lengde tegnstreng med maksimal størrelse på 32 760 bytesLONG RAWVariable lengde binær eller byte streng med maksimal størrelse på 32,760 bytes, ikke kan tolkes av PL /SQLROWIDPhysical rad identifikator, adressen til en rad i en vanlig tableUROWIDUniversal rad identifikator (fysisk, logisk, eller utenlandsk rad identifikator)
PL /SQL boolsk datatyper

boolsk
data type butikker logiske verdier som brukes i logiske operasjoner. De logiske verdiene er de boolske verdiene sant og usant, og verdien NULL.

Men, har SQL ingen datatype tilsvarer BOOLEAN. Derfor kan boolske verdier ikke brukes i:

SQL-setninger

Innebygd SQL-funksjoner (for eksempel TO_CHAR)

PL /SQL-funksjoner som påberopes fra SQL-setninger

PL /SQL Datetime og intervall Typer

DATE
datatype til å lagre fast- lengde datetimes, som inkluderer den tiden av dagen i sekunder siden midnatt. Gyldige datoer spenner fra 1. januar 4712 BC til 31. desember 9999 AD.

Standard datoformat er satt av Oracle initialisering parameter NLS_DATE_FORMAT. For eksempel kan standard være "DD-Man-YY", som inkluderer en to-sifret nummer for den dagen i måneden, en forkortelse av måneden navn, og de to siste sifrene i årstallet, for eksempel 01- OKT-12.

Hver DATE inkluderer tallet, år, måned, dag, time, minutt og sekund. Tabellen nedenfor viser de gyldige verdiene for hvert felt:
Feltnavn
Gyldige datetime-verdier
Valid Interval ValuesYEAR-4712-9999 (unntatt år 0) Enhver null integerMONTH01 til 120 til 11DAY01 til 31 ( begrenset av verdiene for måned og år, i henhold til reglene i kalenderen for den locale) Enhver null integerHOUR00 til 230 til 23MINUTE00 til 590 til 59SECOND00 til 59,9 (n), hvor 9 (n) er presisjonen tid brøk seconds0 til 59,9 (n), hvor 9 (n) er presisjonen i intervallet brøk secondsTIMEZONE_HOUR-12 til 14 (range plass til sommertid og vintertid) Ikke applicableTIMEZONE_MINUTE00 til 59Not applicableTIMEZONE_REGIONFound i den dynamiske ytelsen utsikt V $ TIMEZONE_NAMESNot applicableTIMEZONE_ABBRFound i den dynamiske ytelsen visning V $ TIMEZONE_NAMESNot aktuelt
PL /SQL stort objekt (LOB) datatyper

Stor objekt (LOB) datatyper referere stor til dataelementer som tekst, grafiske bilder, videoklipp og lyd bølgeformer. LOB datatyper tillate effektiv, tilfeldig, stykkevis tilgang til disse dataene. Følgende er de forhåndsdefinerte PL /SQL LOB datatyper:
Datatype
Beskrivelse
SizeBFILEUsed å lagre store binære objekter i operativsystemfiler utenfor database.System avhengig. Kan ikke overstige 4 gigabyte (GB) .BLOBUsed å lagre store binære objekter i database.8 128 terabyte (TB) CLOBUsed å lagre store datablokker tegn i database.8 til 128 TBNCLOBUsed å lagre store blokker av nchar data i database.8 til 128 TB
PL /SQL brukerdefinerte Subtyper

En subtype er en undergruppe av en annen datatype, som er kalt sin base type. En subtype har de samme gyldige operasjoner som sin base type, men bare en undergruppe av sine gyldige verdier.

PL /SQL forhåndsdefinerer flere undergrupper i pakken STANDARD. For eksempel, PL /SQL forhåndsdefinerer subtyper karakter og INTEGER som følger:
SUBTYPE karakter er CHAR; SUBTYPE heltall NUMMER (38,0);

Du kan definere og bruke dine egne undergrupper. Følgende program viser definere og bruke en brukerdefinert subtype:
ERKLÆRER SUBTYPE navn er char (20); SUBTYPE melding ER varchar2 (100); hilsen navn; hilsener melding; BEGIN hilsen: = 'Reader'; hilsener: = 'Velkommen til World of PL /SQL'; dbms_output.put_line ('Hello' || hilsen || hilsener), END; /

Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
Hei Reader Velkommen til World of PL /SQLPL /SQL-prosedyren ble fullført.
NULL i PL /SQL

PL /SQL NULL verdier representerer manglende eller ukjente data, og de er ikke et heltall, et tegn, eller noen annen bestemt datatype. Legg merke til at NULL er ikke det samme som en tom datastreng eller nulltegnet verdien '\\ 0'. En null kan tildeles, men det kan ikke sammenlignes med noe, inkludert seg selv.

PL /SQL - Variabler

Navnet på en PL /SQL variabel består av et brev eventuelt etterfulgt av flere bokstaver, tall, dollartegn, understreker, og talltegn og bør ikke overstige 30 karakterer. Som standard variabelnavn er ikke store og små bokstaver. Du kan ikke bruke en reservert PL /SQL søkeord som variabelnavn.

Variable Erklæring i PL /SQL

PL /SQL-variabler må deklareres i erklæringen seksjon eller i en pakke som et globalt variabel. Når du deklarerer en variabel, PL /SQL allokerer minne for variabelens verdi og lagringssted er identifisert av variabelnavnet

Syntaksen for å erklære en variabel er.
VARIABLE_NAME [KONSTANT] datatype [NOT NULL] [: = | STANDARD initial_value]

Hvor, VARIABLE_NAME
er en gyldig identifikator i PL /SQL, datatype
må være en gyldig PL /SQL-datatypen eller en brukerdefinert datatype som vi allerede har diskutert i forrige kapittel. Noen gyldige variabeldeklarasjoner sammen med deres definisjon er vist nedenfor:
salg nummer (10, 2); pi KONSTANT dobbel presisjon: = 3,1415; navn varchar2 (25), adresse varchar2 (100);

Når du gir en størrelse, skala eller presisjon grense med datatypen, kalles det en begrenset erklæring
. Begrenset erklæringer krever mindre minne enn ubegrensede erklæringer. For eksempel:
salg nummer (10, 2); navn varchar2 (25), adresse varchar2 (100);
Initial Variabler i PL /SQL

Når du deklarerer en variabel, PL /SQL tildeler den en standardverdi på NULL. Hvis du ønsker å klargjøre en variabel med en annen enn den NULL verdi verdi, kan du gjøre det i løpet av erklæringen, enten ved hjelp av følgende:

STANDARD
søkeord


oppdrag
operatør

For eksempel:
teller binary_integer: = 0; hilsener varchar2 (20) STANDARD ' Ha en god dag ';

Du kan også angi at en variabel ikke bør ha en NULL
verdi ved hjelp av NOT NULL
begrensningen. Hvis du bruker NOT NULL begrensningen, må du eksplisitt tilordne en startverdi for den variabelen.

Det er en god programmering praksis å initial variabler riktig, ellers ville en gang programmet produsere uventet resultat. Prøv følgende eksempel som gjør bruk av ulike typer variabler:
erklære et heltall: = 10; b heltall: = 20; c heltall; f real; BEGIN c: = a + b; dbms_output.put_line ('Verdien av c:' || c); f: = 70,0 /3,0; dbms_output.put_line ('Verdien av f:' || f); END; /

Når koden ovenfor er utført, gir det følgende resultat:
verdi av c: 30Value av f: 23.333333333333333333PL /SQL prosedyre fullført.
Variable Scope i PL /SQL

PL /SQL tillater hekke av blokker, dvs. kan hvert program blokk inneholde en annen indre blokk. Hvis en variabel er deklarert i et indre blokk, er det ikke tilgjengelig for den ytre blokken. Men hvis en variabel er deklarert og tilgjengelig for en ytre Block, er det også tilgjengelig for alle nestet indre Blocks. Det finnes to typer av variable omfang.

  • Lokale variabler Z - variabler deklarert i en indre blokk og ikke tilgjengelig for ytre blokker

    Globale variabler Z - variabler deklarert i det ytterste blokk eller en pakke.

    Følgende eksempel viser bruken av Lokal Hotell og Globale
    variabler i sin enkle form: Anmeldelser erklære - Globale variabler num1 nummer: = 95; num2 Nummer: = 85; BEGIN dbms_output.put_line ('Ytre Variabel num1:' || num1); dbms_output.put_line ('Ytre Variabel num2:' || num2); ERKLÆRER - Lokale variabler num1 Nummer: = 195; num2 Nummer: = 185; BEGIN dbms_output.put_line ('Indre Variabel num1:' || num1); dbms_output.put_line ('Indre Variabel num2:' || num2); SLUTT; END; /

    Når koden ovenfor er utført, gir det følgende resultat:
    Ytre Variabel num1: 95Outer Variabel num2: 85Inner Variabel num1: 195Inner Variabel num2: 185PL /SQL-prosedyren ble fullført

    PL /. SQL - Konstanter og Literaler

    En konstant har en verdi som en gang erklært, endrer ikke på programmet. En konstant erklæring presiserer sitt navn, datatype og verdi, og tildeler lagringsplass for det. Erklæringen kan også pålegge NOT NULL begrensningen.

    Erklærte en Constant

    En konstant er deklarert med KONSTANT søkeord. Det krever en startverdi, og tillater ikke at verdien skal endres. For eksempel:
    PI konstant antall: = 3,141592654; DECLARE - konstant erklæring pi konstant antall: = 3,141592654; - Andre erklæringer radius tall (5,2); dia tall (5,2); omkrets nummer (7, 2); område nummer (10, 2); BEGIN - bearbeiding radius: = 9.5; dia: = radius * 2; omkrets: = 2,0 * pi * radius; Areal: = pi * radius * radius; - Output dbms_output.put_line ('Radius:' || radius); dbms_output.put_line ('Diameter:' || dia); dbms_output.put_line ('Omkrets:' || omkrets); dbms_output.put_line ('Areal:' || område); END; /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    Radius: 9.5Diameter: 19Circumference: 59.69Area: 283.53Pl /SQL-prosedyren ble fullført.
    PL /SQL Literaler

    En bokstavelig er en eksplisitt numerisk, karakter, streng, eller boolsk verdi ikke representert med en identifikator. For eksempel TRUE, 786, NULL, 'tutorialspoint' er alle konstanter av typen boolsk, nummer eller streng. PL /SQL, konstanter er store og små bokstaver. PL /SQL støtter følgende typer litteraler:

    Tall Literaler

    Tegn Literaler

    strenger < .no>

    boolsk Literaler

    Dato og klokkeslett Literaler

    Tabellen nedenfor gir eksempler fra alle disse kategoriene av bokstavelige verdier
    Literal Type
    Eksempel:.
    Numeric Literals050 78 -14 0 32 767
    6,6667 0,0 -12,0 3,14159 7800,00
    6E5 1.0e-8 3.14159e0 -1E38 -9.5e-3Character Literals'A ''% '' 9 '' '' z '' ('String Literals'Hello, verden!'

    'Guider Point'

    '19 -NOV-12 '
    BOOLEAN LiteralsTRUE, USANN, og NULL.Date og Time LiteralsDATE' 1978-12-25 ';

    TIMESTAMP' 2012-10-29 12:01:01 ';

    Hvis du vil bygge singel sitater innenfor en streng bokstavelig, plassere to apostrof ved siden av hverandre, som vist nedenfor:
    ERKLÆRER melding varchar2 (20): = '' That 'er tutorialspoint.com' '; BEGIN dbms_output.put_line (melding);! END; /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    Det er tutorialspoint.com PL /SQL-prosedyren ble fullført

    PL /SQL - Operatører
    En operatør er et symbol som forteller kompilatoren til å utføre bestemte matematiske eller logiske manipulasjon. PL /SQL språket er rik på innebygde operatører og gir følgende type aktører:

    Aritmetiske operatorer

    Relasjonsopera

    Sammenligningsoperatorer

    Logiske operatorer

    String operatører

    Denne opplæringen vil forklare aritmetikk, relasjonelle, sammenligning og logiske operatører én etter én. Strengen operatører vil bli diskutert under kapittel:. PL /SQL - Strings

    aritmetiske operatorer

    Tabellen nedenfor viser alle de aritmetiske operatører som støttes av PL /SQL. Anta variabel A innehar 10 og variabel B har fem da:
    Operator
    Beskrivelse
    Eksempel
    + Legger to operandsA + B vil gi 15-Subtraherer andre operanden fra første A - B vil gi 5 * Multipliserer begge operander A * B vil gi 50 /dele opp teller med de-teller A /B vil gi 2 ** Potens operatør, reiser en operand til kraften i otherA ** B vil gi 100000
    Relasjonsoperators

    Relasjonsoperatorer sammenligner to uttrykk eller verdier og returnerer en boolsk resultat. Tabellen nedenfor viser alle de relasjonelle operatører som støttes av PL /SQL. Anta variabel A innehar 10 og variabel B eier 20, deretter:
    Operator
    Beskrivelse
    eksempel
    = Kontrollerer om verdiene av to operander er like eller ikke, hvis ja så tilstanden blir sann . (A = B) er ikke sant. ! =
    < > product: ~ = Kontrollerer om verdiene av to operander er lik eller ikke, hvis verdiene ikke er like så tilstanden blir sann. (A! = B) er sant. > Sjekker om verdien av venstre operanden er større enn verdien av høyre operand, hvis ja så tilstanden blir sann. (A > B) er ikke sant. < Sjekker om verdien av venstre operanden er mindre enn verdien av høyre operand, hvis ja så tilstanden blir sann. (A < b) er sann. > = Kontrollerer om verdien av venstre operanden er større enn eller lik verdien av høyre operand, hvis ja så tilstanden blir sann. (A > = B) er ikke sant. ≪ = Kontrollerer om verdien av venstre operanden er mindre enn eller lik verdien av høyre operand, hvis ja så tilstanden blir sann. (A < = B) er sant
    Sammenligning Operatører

    Sammenligningsoperatorer brukes for å sammenligne ett uttrykk til en annen.. Resultatet er alltid enten SANN, USANN ELLER NULL.
    Operator
    Beskrivelse
    Eksempel
    likethe SOM operatør sammen et tegn, streng, eller clob verdi til et mønster og returnerer TRUE hvis verdien samsvarer med mønsteret, og USANN hvis det ikke not.If 'Zara Ali' som 'Z% A_i' returnerer en boolsk sann, mens 'nuha Ali' som 'Z% A_i' returnerer en boolsk false.BETWEENThe mellom operatør tester om en verdi ligger i et angitt område. x mellom A og B betyr at x > = en og x < = b. Hvis x = 10 da, x mellom 5 og 20 returer sanne, x mellom 5 og 10 returer sant, men x mellom 11 og 20 returer false.INThe I operatør tester satt medlemskap. x IN (sett) betyr at x er lik et medlem av settet. Hvis x = 'm' da, x i ('a', 'b', 'c') returnerer boolean false men x i ('m', 'n', 'o') returnerer boolsk true.IS NULLThe ER NULL operatøren returnerer den boolske verdien TRUE hvis operand er NULL eller USANN hvis det ikke er NULL. Sammenligninger involverer NULL verdier alltid gi NULL. Hvis x = 'm', deretter 'x er null' returnerer boolsk USANN.
    logiske operatører

    Tabellen nedenfor viser den logiske operatører som støttes av PL /SQL. Alle disse aktørene arbeide på boolske operander og produserer boolske resultater. Anta variabel A gjelder og variabel B holder falsk, deretter:
    Operator
    Beskrivelse
    Eksempel Hotell og Called logisk AND operatør. Hvis begge operandene er sant så tilstanden blir sann. (A og B) er falsk. orCalled logisk eller operatør. Hvis noen av de to operander er sant da tilstanden blir sann. (A eller B) er sant. notCalled logisk IKKE Operator. Brukes til å reversere den logiske tilstand av sin operand. Hvis en betingelse er sann så logisk NOT operatøren vil gjøre det falske. ikke (A og B) er sant.
    PL /SQL operatør presedens

    Operatør forrang bestemmer grupperingen av begreper i et uttrykk. Dette påvirker hvordan et uttrykk evalueres. Enkelte operatører har høyere prioritet enn andre; for eksempel har multiplikasjon operatør høyere prioritet enn tillegg operatøren:

    For eksempel x = 7 + 3 * 2; her, er x tildelt 13, ikke 20 fordi operatøren * har høyere prioritet enn +, så det første blir ganget med 3 * 2 og deretter legger inn 7.

    Her operatører med høyest prioritet vises øverst bordet, de med lavest nederst. Innenfor et uttrykk, vil høyere presedens operatørene skal evalueres først
    Operatør
    Operasjon
    ** eksponensieringen +, Identity, negasjon *, /multiplikasjon, divisjon +, -., || Tillegg subtraksjon, sammenkjedingsoperatorer =, <, >, < =, > =, <! >, =, ~ = ^ = ER
    NULL, SOM, MELLOM, INcomparisonNOTlogical negationANDconjunctionORinclusion

    PL /SQL - Forhold

    beslutningsstrukturer krever at programmereren oppgi en eller flere vilkår som må evalueres eller testet av programmet, sammen med en uttalelse eller uttalelser om å bli henrettet hvis tilstanden er bestemt til å være sant, og eventuelt andre uttalelser å bli henrettet hvis betingelsen er fast bestemt på å være falsk.

    IF-THEN Statement

    Det er den enkleste formen for IF
    kontroll uttalelse, ofte brukt i beslutningsprosesser og endre kontrollflyt for henrettelsen programmet.

    IF-setningen
    knytter en betingelse med en sekvens av utsagn omsluttet av søkeordene SÅ Hotell og END IF
    . Hvis tilstanden er TRUE
    , får uttalelsene henrettet, og hvis tilstanden er USANN
    eller NULL
    , deretter IF
    uttalelse gjør ingenting .

    Syntax:

    Syntax for IF-THEN uttalelsen er:
    IF tilstand da S; END IF;

    Hvor stand
    er en boolsk eller relasjonell tilstand og S
    er en enkel eller sammensatt setning. Eksempel på en IF-THEN uttalelsen er:
    IF (en < = 20) SÅ c: = c + 1; END IF;

    Hvis boolsk uttrykk stand
    evaluerer til sann, så blokken med kode inne hvis setningen vil bli henrettet. Hvis boolsk uttrykk evaluerer til false, så det første settet med kode etter slutten av hvis setningen (etter stengetid slutten hvis) vil bli utført

    Flow Diagram:.

    IF-da- ELSE Statement

    En sekvens av IF-THEN
    uttalelser kan bli etterfulgt av en valgfri sekvens av ELSE
    utsagn, som utføres når betingelsen er USANN


    Syntax:

    Syntax for IF-THEN-ELSE uttalelsen er:
    IF tilstand da S1; ELSE S2; END IF;

    Hvor, S1 Hotell og S2
    er forskjellig sekvens av utsagn. I IF-THEN-ELSE uttalelser, når testen stand
    er TRUE, oppstilling S1
    er utført og S2
    er hoppet over; når testen stand
    er USANN, deretter S1
    er forbigått og statement S2
    utføres. For eksempel, etter IF color = red SÅ dbms_output.put_line ('Du har valgt en rød bil') ELSE dbms_output.put_line ('Velg en farge for bilen din'); END IF;

    Hvis boolsk uttrykk stand
    evaluerer til sann, så hvis-så blokk med kode vil bli utført, ellers ellers blokk med kode vil bli henrettet

    Flow Diagram:.

    hvis- SÅ-ELSIF Statement

    IF-THEN-ELSIF
    setningen kan du velge mellom flere alternativer. En IF-THEN
    uttalelsen kan bli etterfulgt av en valgfri ELSIF ... ELSE
    uttalelse. ELSIF
    klausulen gjør at du kan legge til flere forhold.

    Når du bruker IF-THEN-ELSIF
    uttalelser er det noen punkter å huske på.

    Det er ELSIF, ikke AnnetHvis-
    < li>

    En IF-THEN-setning kan ha null eller annens, og det må komme etter noen ELSIF tallet.

    En IF-THEN-setning kan ha null til mange ELSIF og de må kommer før ELSE

    Når en ELSIF lykkes, vil ingen av de rester ELSIF s eller andres testes

    Syntax:..

    Syntaksen en IF-THEN-ELSIF Statement i PL /SQL programmeringsspråk er:
    IF (boolean_expression 1) SÅ S1; - Utfører når det boolske uttrykket 1 er sann ELSIF (boolean_expression 2) SÅ S2; - Utfører når det boolske uttrykket to er sant ELSIF (boolean_expression 3) SÅ S3; - Utfører når det boolske uttrykket tre er sant ELSE S4; - Utfører når ingen av de ovennevnte betingelsen er sann END IF;

    CASE Statement

    I likhet med IF
    uttalelse, CASE statement
    velger en sekvens av uttalelser å utføre. Men å velge rekkefølgen, bruker CASE
    statement en velger i stedet for flere boolske uttrykk. En velgeren er et uttrykk, der verdien brukes til å velge ett av flere alternativer

    Syntax.

    Syntaksen for saken statement i PL /SQL er:
    CASE velger NÅR 'verdi1 'SÅ S1; NÅR 'verdi2' THEN S2; NÅR 'basis3' THEN S3; ... ELSE Sn; - Standard caseEND CASE;
    Flow Diagram:

    Søkte CASE Statement

    søkte CASE
    uttalelsen har ingen velger og dets Når
    klausuler inneholder søkebetingelser som gir boolske verdier

    Syntax:

    Syntaksen for søkte tilfelle uttalelse i PL /SQL er:.
    tilfelle når velger = 'verdi1' THEN S1; NÅR velger = 'verdi2' THEN S2; NÅR velger = 'basis3' THEN S3; ... ELSE Sn; - Standard caseEND CASE;
    Flow Diagram:

    Nøstet IF-THEN-ELSE Statements

    Det er alltid lovlig i PL /SQL-programmering for å hekke IF-ELSE
    uttalelser, noe som betyr at du kan bruke en IF
    eller ELSE IF
    uttalelse inne i en annen IF
    eller ELSE IF
    uttalelse (s).

    Syntax:
    IF (boolean_expression 1) SÅ - utfører når det boolske uttrykket 1 er sann IF (boolean_expression 2) SÅ - utfører når det boolske uttrykket to er sant sekvens-of-uttalelser; END IF; ELSE - eksekverer når boolsk uttrykk en ikke er sant Else-uttalelser; END IF;

    PL /SQL - Loops

    Det kan være en situasjon når du trenger å utføre en blokk med kode flere antall ganger. Generelt er uttalelser utføres i rekkefølge: Den første setningen i en funksjon utføres først, etterfulgt av den andre, og så videre

    Programmeringsspråk gi ulike kontrollstrukturer som gir mulighet for mer kompliserte kjøring stier
    ..

    En sløyfe uttalelse tillater oss å utføre en uttalelse eller gruppe av utsagn flere ganger, og følgende er den generelle form av en sløyfe uttalelse i de fleste programmeringsspråk:

    Basic Loop erklæringen

    Basic løkke struktur omslutter sekvens av utsagn i mellom LOOP Hotell og END LOOP
    uttalelser. Med hver iterasjon, er sekvensen av uttalelser henrettet og deretter kontrollere CVer på toppen av loopen

    Syntax.

    Syntaksen til en grunnleggende sløyfe i PL /SQL programmeringsspråk er:
    LOOP Sekvens av utsagn; END LOOP;

    Her sekvens av utsagn (e) kan være et enkelt utsagn eller en blokk av utsagn. En EXIT utsagn eller en EXIT NÅR uttalelse er nødvendig for å bryte sløyfen.

    mens loop Erklæring

    En mens loop
    uttalelse i PL /SQL programmeringsspråk utfører gjentatte ganger et mål uttalelse så lenge en gitt betingelse er sann.

    Syntax:
    MENS tilstand LOOP sequence_of_statementsEND LOOP;

    FOR LOOP erklæringen

    En FOR LOOP
    er en repetisjon kontrollstruktur som lar deg effektivt skrive en loop som må utføre et bestemt antall ganger

    Syntax.
    FOR telleren i initial_value .. final_value LOOP sequence_of_statements; END LOOP;

    Følgende er noen spesielle kjennetegn ved PL /SQL for loop:

    initial_value Hotell og final_value
    av løkken variabel eller teller
    kan være Literaler, variabler eller uttrykk, men må vurdere til tall. Ellers PL /SQL hever den forhåndsdefinerte unntak VALUE_ERROR.

    initial_value
    trenger ikke å være en; må imidlertid løkke teller økning (eller minsk) være en
    .

    PL /SQL kan bestemme sløyfe utvalg dynamisk under kjøring.


    Nøstet Loops

    PL /SQL kan ved hjelp av en sløyfe inne i en annen loop. Følgende avsnitt viser noen eksempler for å illustrere konseptet

    Syntaksen for en nestet grunn LOOP uttalelse i PL /SQL er som følger:.
    LOOP Sekvens av statements1 LOOP Sekvens av statements2 END LOOP; END LOOP; < p> Syntaksen for en nestet FOR LOOP uttalelse i PL /SQL er som følger:
    FOR Counter1 I initial_value1 .. final_value1 LOOP sequence_of_statements1 FOR counter2 I initial_value2 .. final_value2 LOOP sequence_of_statements2 END LOOP; END LOOP;

    syntaks for en nestet mens loop uttalelse i Pascal er som følger:
    MENS Condition1 LOOP sequence_of_statements1 MENS Condition2 LOOP sequence_of_statements2 END LOOP; END LOOP;

    EXIT erklæringen

    EXIT
    uttalelse i PL /SQL programmeringsspråk har følgende to bruksområder.

    Når EXIT uttalelsen er oppstått inne i en loop, er løkken avbrytes umiddelbart program kontroll gjenopptas ved neste setningen som følger etter løkken


    Hvis du bruker nøstede løkker (dvs. en sløyfe inne i en annen loop), vil EXIT uttalelse stoppe kjøringen av den innerste løkken og begynne å jobbe med neste kodelinje etter blokken

    Syntax.

    Syntaksen for en EXIT uttalelse i PL /SQL er som følger:
    EXIT;
    Flow Diagram:

    FORTSETTE erklæringen

    FORTSETTE
    uttalelsen fører til at sløyfe for å hoppe over resten av kroppen sin og umiddelbart teste dens tilstand før gjentok. Med andre ord, tvinger det neste iterasjon av loopen skal skje, hopper over noen kode i mellom

    Syntax.

    Syntaksen for en FORTSETTE uttalelse er som følger:
    FORTSETT;
    Flow Diagram:

    GOTO erklæringen

    En GOTO
    uttalelse i PL /SQL programmeringsspråk gir et ubetinget hopp fra GOTO til en merket uttalelse i samme . subprogram

    NB:
    Bruk av GOTO-setningen er sterkt frarådet i alle programmeringsspråk fordi det gjør vanskelig å spore kontrollflyt av et program, noe som gjør programmet vanskelig å forstå og vanskelig å endre . Ethvert program som bruker en GOTO kan omskrives slik at den ikke trenger den GOTO

    Syntax.

    Syntaksen for en GOTO uttalelse i PL /SQL er som følger:
    GOTO etikett; .... < < label > > uttalelse;
    Flow Diagram:

    PL /SQL - Strings

    Strengen i PL /SQL er faktisk en sekvens av tegn med en valgfri størrelse spesifikasjon. Tegnene kan være numeriske, brev, tomme, spesialtegn eller en kombinasjon av alt. PL /SQL tilbyr tre typer strenger:

    Fast lengde strenger Bilde: I slike strenger, programmerere angi lengden mens erklære strengen. Strengen er rett-polstret med mellomrom til lengden så spesifisert

    variabel lengde strenger Bilde:. I slike strenger, en maksimal lengde på opp til 32 767, for string er spesifisert, og ingen padding foregår

    Tegn store objekter (CLOBs) Bilde:.. Disse er variabel lengde strenger som kan være opp til 128 terabytes

    PL /SQL-strenger kan være enten variabler eller litteraler. En streng bokstavelig er vedlagt i anførselstegn. For eksempel, etter 'Dette er en streng bokstavelig. Eller "hello world"

    Hvis du vil ta et enkelt sitat inne i en streng bokstavelig, må du skrive inn to enkle anførselstegn ved siden av hverandre, som:
    "dette isn''t hvordan det ser ut som"
    Erklærte String Variabler

    Oracle database gir mange strengdatatyper, som, røye, nchar, VARCHAR2, NVARCHAR2, CLOB, og NCLOB. De datatyper innledes med en 'N' er 'nasjonale tegnsett' datatyper, at datalageret Unicode tegn.

    Hvis du trenger å erklære en variabel lengde streng, må du gi den maksimale lengden av strengen. For eksempel, den VARCHAR2 datatype. Følgende eksempel illustrerer erklære og bruke noen strengvariabler:
    ERKLÆRER navn varchar2 (20); Selskapet varchar2 (30); introduksjon clob; Valget char (1); BEGIN navn: = 'John Smith'; Selskapet: = 'Infotech'; innledning: = 'Hei! I''m John Smith fra Infotech. '; Valget: = 'y'; HVIS valg = 'y' SÅ dbms_output.put_line (navn); dbms_output.put_line (selskapet); dbms_output.put_line (introduksjon); END IF; END; /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    John SmithInfotech CorporationHello! Jeg er John Smith fra Infotech.PL/SQL prosedyren ble fullført

    Å erklære en fast lengde streng, bruke CHAR datatype. En varray brukes til å lagre en ordnet samling av data, men det er ofte mer nyttig å tenke på en matrise som en samling av variabler av samme type.

    Alle varrays bestå av sammenhengende minneplasser. Lavest adresse tilsvarer det første elementet og det høyeste adresse til det siste elementet.

    En matrise er en del av samlingen typedata og det står for variabel størrelse arrays. Vi vil studere andre innsamlingstyper i et senere kapittel 'PL /SQL Samlinger'.

    Hvert element i en varray har en indeks knyttet til den. Det har også en maksimal størrelse som kan endres dynamisk.

    Opprette en Varray Type

    En varray type er opprettet med CREATE TYPE uttalelse. Du må angi maksimal størrelse og type elementer som er lagret i varray. Forenklet syntaks for CREATE OR REPLACE PROSEDYRE utsagnet er som følger:
    CREATE [OR REPLACE] funksjonen funksjons [(parameternavn [IN | OUT | IN OUT] skriver [...])] RETURN return_datatype {IS | AS} BEGIN < function_body > END [funksjonsnavn];.

    Hvor, etter

    funksjonsnavn
    angir navnet på funksjonen

    [OR REPLACE] alternativet kan modifisere en eksisterende funksjon.

    Den valgparameterlisten inneholder navn, modus og typer parametere. PL /SQL styrer sammenheng området gjennom en markør. En markør holder radene (én eller flere) returnert av en SQL-setning. Settet med rader markøren innehar er referert til som aktiv sett
    .

    Du kan navngi en markør slik at det kunne bli referert til i et program for å hente og behandle radene som returneres av SQL-setningen, ett om gangen. Det finnes to typer av pekere:

    Implisitt pekere

    Explicit pekere

    Implisitt Pekere
    < p> Implisitt pekere blir automatisk opprettet av Oracle når en SQL-setning er utført, når det ikke er eksplisitt markør for uttalelsen. Programmerere kan ikke kontrollere den implisitte pekere og informasjonen i den.

    Når en DML utsagn (INSERT, UPDATE og DELETE) er utstedt, en implisitt markøren er assosiert med denne uttalelsen. For INSERT operasjoner, holder markøren dataene som må settes inn. For UPDATE og DELETE operasjoner, identifiserer markøren radene som ville bli berørt.

    I PL /SQL, kan du referere til den nyeste implisitte markøren som SQL markøren
    , som alltid har attributtene som% FUNNET,% ISOPEN,% NOTFOUND, og% ROWCOUNT. En eksplisitt markøren skal defineres i erklæringen delen av PL /SQL Block. Den er laget på en SELECT Statement som returnerer mer enn én rad.

    Syntaksen for å skape en eksplisitt markøren er:
    CURSOR cursor_name ER select_statement;

    Arbeide med en eksplisitt markøren innebærer fire trinn:

    Erklærte markøren for initialisering i minnet

    Åpne markøren for tildeling av minne

    Henter markøren for å hente data

    Lukke markøren for å frigjøre allokert minne

    forkynner Markør

    Erklærte markøren definerer markøren med et navn og tilhørende SELECT-setningen. For eksempel:
    MARKØR- c_customers ER SELECT id, navn, adresse fra kunder;
    Åpne Markør

    Åpne markøren tildeler minne for markøren og gjør den klar for henting radene som returneres av SQL uttalelse i den. For eksempel vil vi åpne ovenfor definerte markøren som følger:
    ÅPNE c_customers;
    Henter Markør

    Henter markøren innebærer tilgang til én rad om gangen. For eksempel vil vi hente rader fra oven åpnet markøren som følger:
    HENT c_customers INTO c_id, c_name, c_addr;
    Lukke Markør

    Lukke markøren betyr frigjøre allokert minne. For eksempel vil vi stenge oven åpnet markøren som følger:
    Lukk c_customers;
    Eksempel:

    Etter er en komplett eksempel for å illustrere begrepene eksplisitte pekere:
    ERKLÆRER c_id kunder. id% type; c_name customers.name% type; c_addr customers.address% type; MARKØR- c_customers er SELECT id, navn, adresse fra kunder; BEGIN ÅPNE c_customers; LOOP HENT c_customers inn c_id, c_name, c_addr; dbms_output.put_line (c_id || '' || c_name || '' || c_addr); EXIT NÅR c_customers% notfound; END LOOP; c_name customers.name% type; Triggere er faktisk skrevet for å bli henrettet som svar på noen av følgende hendelser:.

  • En database manipulasjon (DML) uttalelse (DELETE, INSERT eller UPDATE)

    En database definisjon (DDL) uttalelse (CREATE, ALTER eller DROP).

    En database drift (SERVERERROR, pålogging, avlogging, oppstart eller nedleggelse).

    Triggers kunne defineres på bordet, utsikt, skjema eller databasen som arrangementet er tilknyttet. ETTER | STEDET FOR} {SETT [OR] | UPDATE [OR] |

    {FØR | ETTER | Den STEDET FOR klausulen brukes til å opprette trigger på en visning

    {SETT [OR]. | UPDATE [OR] | DELETE}: Dette angir DML drift

    [AV col_name]:.. Dette spesifiserer kolonnenavnet som ville bli oppdatert

    [ON table_name]: Dette angir navnet på bordet i forbindelse med avtrekkeren

    [referering OLD AS o NEW AS n]:. Dette gjør at du kan se nye og gamle verdier for ulike DML utsagn , som INSERT, UPDATE og DELETE.

    [for hver rad]: Dette angir rad nivå utløser, dvs. ville utløse bli henrettet for hver rad blir berørt. Ellers avtrekkeren vil kjøre bare én gang når SQL-setningen utføres, som kalles et bord nivå trigger.

    NÅR (tilstand): Dette gir en betingelse for rader som trigger ville brann. Denne klausulen er bare gyldig for rad nivå triggere. ID | NAME | AGE | ADRESSE | LØNN | + ---- + ---------- + ----- + ----------- + ---------- + | 1 | Ramesh | 32 | Ahmedabad | 2000.00 || 2 | Khilan | 25 | Delhi | 1500.00 || 3 | Kaushik | 23 | Kota | 2000.00 || 4 | Chaitali | 25 | Mumbai | 6500.00 || 5 | Hardik | 27 | Bhopal | 8500.00 || 6 | Komal | 22 | MP | 4500.00 | + ---- + ---------- + ----- + ----------- + ---------- +

    Følgende program skaper en radnivå
    trigger for kunder tabell som ville fyre for INSERT eller UPDATE eller DELETE operasjoner utføres på KUNDER bordet. Dette trigger vil vise lønn forskjellen mellom de gamle verdier og nye verdier:
    CREATE OR REPLACE TRIGGER display_salary_changesBEFORE slette eller sette inn eller oppdatere PÅ customersFOR HVER ROWWHEN (NEW.ID > 0) ERKLÆRER sal_diff nummer, BEGIN sal_diff: =: NEW .salary -: OLD.salary; dbms_output.put_line ('Old lønn:' ||: OLD.salary); dbms_output.put_line ('Ny lønn:' ||: NEW.salary); markerer karakterer; merker: = karakterer (98, 97, 78, 87, 92); Totalt: = names.count; dbms_output.put_line ('Total' || total || 'Students'); En objekttype tillater deg å kasse sammensatte typer. Bruke objekter tillate deg å gjennomføre reelle objekter med spesielle strukturen i data og metoder for å drive det. Objekter har attributter og metoder. Attributtene er egenskapene til et objekt og er brukt til lagring av et objekts tilstand; og metoder brukes for å modellere sine atferd.

    Objekter er skapt ved hjelp av CREATE [OR REPLACE] TYPE uttalelse. Nedenfor er et eksempel å lage en enkel adresse
    objekt som består av noen få attributter:
    CREATE OR REPLACE TYPE adresse AS OBJEKT (house_no varchar2 (10), street varchar2 (30), city varchar2 (20), state varchar2 (10), pinkode varchar2 (10)); /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    Type opprettet

    La oss lage ett objekt . Kundeanmeldelser hvor vi vil vikle attributter Hotell og metoder
    sammen for å ha objektorientert følelsen:
    CREATE OR REPLACE TYPE kunde AS OBJEKT (kodenummer (5), navn varchar2 ( 30), contact_no varchar2 (12), adr adresse, medlem prosedyre display); /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    Type opprettet
    Instantiating et objekt <. br>

    Definere en objekttype gir en blåkopi for objektet. For å bruke dette objektet, må du opprette forekomster av dette objektet. Du får tilgang til attributter og metoder av objektet ved hjelp av forekomstnavnet og tilgangen operatør
    som følger:
    ERKLÆRER bostedsadresse; BEGIN bosted: (.) ​​= Adresse ('103A', 'MGRoad ',' Jaipur ',' Rajasthan ',' 201301 '); dbms_output.put_line ('House No:' || residence.house_no); dbms_output.put_line ('Street:' || residence.street); dbms_output.put_line ('City:' || residence.city); dbms_output.put_line ('State:' || residence.state); Å implementere arv, bør base objektene bli erklært som ikke endelig. Standard er FINAL.

    Følgende programmer illustrere arv i PL /SQL-objekter. Opprette basen rektangel
    objekt:
    CREATE OR REPLACE TYPE rektangel AS OBJEKT (lengde antall, bredde nummer, medlem funksjon større bilde (inc nummer) avkastning rektangel, IKKE ENDELIG medlem prosedyre display) IKKE ENDELIG /

    Når ovennevnte koden kjøres på SQL teksten, gir det følgende resultat:
    Type opprettet

    Opprette basen type kropp.
    CREATE OR REPLACE TYPE BODY rektangel AS medlem funksjon større bilde (inc nummer) retur rektangel IS BEGIN retur rektangel (self.length + inc, self.width inc +); END enlarge; MEDLEMS PROSEDYRE skjerm IS BEGIN dbms_output.put_line ('Lengde:' || lengde); dbms_output.put_line ('Bredde:' || bredde); END skjerm, END, /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    Type kroppen skapt

    Opprette barnet objekt tabletop Bilde:
    . . CREATE OR REPLACE TYPE tabletop UNDER rektangel (material varchar2 (20), overordnet medlem prosedyre visning) /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    Type opprettet

    Opprette skriv kroppen for barnet objekt tabletop Bilde:
    CREATE OR REPLACE TYPE BODY tabletop ASOVERRIDING MEDLEM PROSEDYRE skjerm ISBEGIN dbms_output.put_line ('Lengde:' || lengde); dbms_output.put_line ('Bredde:' || bredde); dbms_output.put_line ('Materiale:' || materiale); END display; /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    Type kroppen skapt

    Bruke tabletop
    protestere og medlemsfunksjoner:
    ERKLÆRER t1 tabletop; t2 tabletop; BEGIN t1: = tabletop (20, 10, 'Wood'); t2: = tabletop (50, 30, 'Steel'); t1.display; t2.display; END; /

    Når ovenfor koden kjøres på SQL teksten, gir det følgende resultat:
    Lengde: 20Width: 10Material: WoodLength: 50Width: 30Material: SteelPL /SQL-prosedyren ble fullført Abstract Objekter i PL /SQL

    IKKE en forekomst av klausulen gjør at du kan erklære en abstrakt objekt. Du kan ikke bruke et abstrakt objekt som det er; du må lage en subtype eller barnet type slike gjenstander for å bruke sine funksjoner.

    For eksempel, etter CREATE OR REPLACE TYPE rektangel AS OBJEKT (lengde antall, bredde nummer, ikke en forekomst av ikke endelig MEDLEM PROSEDYRE display) IKKE en forekomst IKKE ENDELIG /

    Når ovenfor koden kjøres på SQL prompt, produserer det følgende resultat:
    Type opprettet.



    Next Page:No