sql >> Databasteknik >  >> RDS >> Oracle

Hur man skapar PL/SQL lagrade procedurer utan parametrar i Oracle Database

När vi diskuterade syntaxen i Introduktionen till PL/SQL-lagrade procedurer lärde vi oss att en lagrad procedur kan ha noll, en eller många parametrar. Idag i denna handledning kommer vi att lära oss hur man skapar en PL/SQL lagrad procedur med noll parametrar eller säg utan några parametrar. Förutom att skapa en lagrad procedur i Oracle-databasen kommer vi också att lära oss i denna handledning de många sätten att anropa en lagrad procedur i ett PL/SQL-program.

Hur man skapar en lagrad PL/SQL-procedur utan parametrar i Oracle-databasen

I följande exempel kommer vi att skapa en mycket enkel procedur. Jag kommer att försöka hålla exemplet så enkelt som möjligt så att alla PL/SQL-inlärningsentusiaster där ute enkelt kan förstå processen för att skapa en lagrad procedur.

CREATE OR REPLACE PROCEDURE pr_RebellionRider IS
  var_name VARCHAR2 (30):= 'Manish';
  var_web VARCHAR2 (30) := 'RebellionRider.com';
BEGIN
  DBMS_OUTPUT.PUT_LINE('Whats Up Internet? I am '||var_name||' from '||var_web);
END Pr_RebellionRider;
/

I exemplet ovan har jag skapat en PL/SQL lagrad procedur med namnet pr_RebellionRider som har två variabler som kan hålla strängar av VARCHAR2 datatyp. I exekveringssektionen har denna PL/SQL-procedur bara en DBMS OUTPUT-sats som visar strängarna som är lagrade i dessa variabler tillbaka till användaren på ett formaterat sätt.

För en detaljerad förklaring av ovanstående kod, titta på videohandledning på min YouTube-kanal om samma ämne.

Hur man anropar PL/SQL lagrade procedurer i Oracle Database

Efter framgångsrikt skapande och kompilering av den lagrade proceduren måste du anropa denna subrutin. Du kan göra det på flera sätt som:

  • Anropa en lagrad PL/SQL-procedur med EXECUTE-satsen.
  • Anropa en lagrad PL/SQL-procedur med ett anonymt PL/SQL-block.
  • Anropa en lagrad PL/SQL-procedur med ett namngivet PL/SQL-block.

**Om din subrutin, t.ex. lagrad procedur, består av PL/SQL-sats på serversidan, se till att ställa in "Serverutgång på" för att se resultatet.

Anropa en lagrad PL/SQL-procedur med EXECUTE-satsen

Det bästa sättet att snabbt kontrollera utdata från din lagrade procedur eller testa hur din PL/SQL-procedur fungerar är att anropa den med nyckelordet EXECUTE. För att anropa en lagrad procedur med nyckelordet EXECUTE måste du helt enkelt skriva samma nyckelord följt av namnet på proceduren.

EXECUTE PR_RebellionRider;

Eller så kan du också skriva de fyra första bokstäverna i nyckelordet EXECUTE följt av procedurens namn.

EXEC PR_RebellionRider; 

Båda påståendena är desamma och kommer att göra samma arbete.

Anropa en lagrad PL/SQL-procedur med ett anonymt PL/SQL-block

Det andra sättet att anropa en procedur är att placera en proceduranropssats i exekveringsdelen av ett anonymt PL/SQL-block.

BEGIN
  PR_RebellionRider;
END;
/

Du måste helt enkelt skriva namnet på din lagrade procedur i exekveringssektionen av ett anonymt och namngivet PL/SQL-block. Kompilatorn tolkar det automatiskt som en proceduranropssats. Om din procedur accepterar några parametrar kan du ange värden för parametrar här. Vi kommer att prata i detalj om lagrade procedurer med parametrar i vår nästa handledning.

Föreslagen läsning:PL/SQL-block i Oracle Database

Pröva själv

Det tredje sättet att anropa en lagrad procedur i Oracle Database är att använda namngivna PL/SQL-block. Detta är vad du bör prova själv.

Skriv en PL/SQL-lagrad procedur som visar din favoritsträng och försök sedan anropa den med ett namngivet PL/SQL-block som databasutlösare eller PL/SQL-funktion.

Du kan skicka dina svar till mig eller om du har några frågor, skriv till mig via min e-post eller på min Facebook eller Twitter. Du hittar alla mina kontaktlänkar på kontaktsidan på min hemsida.

Du kan hjälpa andra att lära dig genom att dela den här bloggen med dina vänner på dina sociala medier. Tack och ha en bra dag!

Hej, om du lär dig snabbare genom att titta på videon behöver du inte leta längre! Jag har gjort en kort videohandledning som förklarar ämnet. Kolla in det nu.


  1. PostgreSQL kolumn foo finns inte där foo är värdet

  2. Var finns Oracle Bug Database?

  3. Hur man beräknar skillnaden mellan två tidsstämplar i SQLite

  4. Konvertera 'datetime' till 'datetimeoffset' i SQL Server (T-SQL-exempel)