Forskellen mellem lagret procedure og funktion

Indholdsfortegnelse:

Forskellen mellem lagret procedure og funktion
Forskellen mellem lagret procedure og funktion

Video: Forskellen mellem lagret procedure og funktion

Video: Forskellen mellem lagret procedure og funktion
Video: Gravitationskraft & Zentrifugalkraft im Gleichgewicht 2024, November
Anonim

Lagret procedure vs. funktion

Lagrede procedurer og funktioner er to typer programmeringsblokke. Begge skal have kaldenavne. Disse kaldende navne bruges til at kalde dem inde i en anden programmeringsblok som procedurefunktioner og pakker eller SQL-forespørgsler. Begge disse objekttyper accepterer parametre og udfører opgaven bag disse objekter. Dette er syntaksen (i ORACLE) til at oprette en lagret procedure, opret eller erstat procedurenavn (parametre)

as

begynd

udsagn;

undtagelse

exception_handling

end;

Og her er syntaksen til at oprette en funktion (i ORACLE), opret eller erstat funktion funktionsnavn (parametre)

retur return_datatype

as

begynd

udsagn;

return return_value/variable;

undtagelse;

exception_handling;

end;

lagrede procedurer

Som nævnt ovenfor kaldes lagrede procedurer programmeringsblokke. De accepterer parametre som brugerinput og behandler i henhold til logikken bag proceduren og giver resultatet (eller udfører en specifik handling). Disse parametre kan være IN, OUT og INOUT typer. Variabelerklæringer, variabeltildelinger, kontrolsætninger, loops, SQL-forespørgsler og andre funktioner/procedure/pakkekald kan være inde i procedureteksten.

Funktioner

Funktioner er også navngivne programmeringsblokke, som skal returnere en værdi ved hjælp af RETURN-sætning, og før den returnerer en værdi, udfører dens krop nogle handlinger også (i henhold til den givne logik). Funktioner accepterer også parametre, der skal køres. Funktioner kan kaldes inde i forespørgslerne. Når en funktion kaldes inde i en SELECT-forespørgsel, gælder den for hver række i resultatsættet af SELECT-forespørgslen. Der er flere kategorier af ORACLE-funktioner. De er

Enkeltrække-funktioner (returnerer et enkelt resultat for hver række i forespørgslen)

Der er underkategorier af funktioner i en enkelt række.

  • Numerisk funktion (f.eks.: ABS, SIN, COS)
  • Tegnfunktion (eks.: CONCAT, INITCAP)
  • Dato-tidsfunktion (f.eks.: LAST_DAY, NEXT_DAY)
  • Konverteringsfunktioner (eks.: TO_CHAR, TO_DATE)
  • Samlingsfunktion (eks.: CARDINALITY, SET)
  • Aggregerede funktioner (Returnerer en enkelt række, baseret på en gruppe af rækker. Eks.: AVG, SUM, MAX)
  • Analytiske funktioner
  • Objektreferencefunktioner
  • Modelfunktioner
  • Brugerdefinerede funktioner

Hvad er forskellen mellem funktion og lagret procedure?

• Alle funktioner skal returnere en værdi ved hjælp af RETURN-sætning. Lagrede procedurer returnerer ikke værdier ved hjælp af RETURN-sætning. RETURN-sætning i en procedure vil returnere dens kontrol til det kaldende program. OUT-parametre kan bruges til at returnere værdier fra lagrede procedurer.

• Funktioner kan kaldes inde i forespørgslerne, men lagrede procedurer kan ikke bruges inde i forespørgslerne.

• RETURN-datatypen skal inkluderes for at oprette en funktion, men i den lagrede procedure DDL er den ikke det.

Anbefalede: