Introduction to PL/SQL (Definition & Block Structure)

PL/SQL blocks standard SQL statements ને procedural શક્તિથી વીંટાળે છે, તમને variables, loops, અને logic સીધા database engine ની અંદર વાપરવા દેતાં.

8 min read · 10 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

વાસ્તવિક Applications માટે Standard SQL કેમ પૂરતું નથી

કલ્પો કે TicketDesk પર તમારા manager તમને એક તાકીદનો helpdesk નો મુદ્દો જોવાનું કહે છે. જો priority Critical હોય, તમારે એ તરત એક senior agent ને સોંપવો પડે. જો એ High હોય, તમે એ એક mid level agent ને સોંપો. નહીંતર, તમે એ એક trainee ને સોંપો. શું તમે આ આખી routing ની logic એક જ standard SQL statement ની અંદર પૂરી કરી શકો? Standard SQL rows લાવવા માટે ઉત્તમ છે, પણ એની પાસે જટિલ નિર્ણયો લેવાની, કામચલાઉ variables જાહેર કરવાની, કે સીધા database server પર errors સંભાળવાની ગણતરીની શક્તિ નથી.

Theory

આપોઆપ ચાલતી Sorting કચેરી

એક પાયાની SQL query ને એક ટપાલી જેવી વિચારો જે એક ચોક્કસ ઓરડામાં પત્ર પહોંચાડે છે. એ એક કામ બરાબર કરે છે. હવે, એક પૂરેપૂરી આપોઆપ ચાલતી sorting કચેરી વિચારો. એ એક પાર્સલ મેળવે છે, એનું વજન એક digital ત્રાજવે તપાસે છે, pin code ના આધારે નક્કી કરે છે કે એ હવાઈ માર્ગે જશે કે રસ્તે, અને બગડેલાં પાર્સલ એક ખાસ recovery ના ઓરડામાં વાળે છે. એક PL/SQL block એ sorting કચેરી જેવો છે. એ standard SQL statements ને સાથે જૂથબદ્ધ કરે છે અને એમને એક મગજથી સજ્જ કરે છે.

Theory

એક PL/SQL Block નો મુખ્ય ખ્યાલ

Oracle SQL માં, PL/SQL એટલે Procedural Language extension to SQL. એ એક માલિકીનું programming વાતાવરણ છે જે conditional statements, loops, અને variables જેવાં procedural નિયંત્રણનાં માળખાં રજૂ કરીને standard SQL ને વિસ્તારે છે. આ ભાષામાં execution ના પાયાના એકમને block કહેવાય છે. Database engine ને SQL statements એક પછી એક મોકલવાને બદલે, તમે એમને એક જ block ના ડબ્બાની અંદર જૂથબદ્ધ કરો છો જે એકસાથે process થાય છે.

At a glance

એક Oracle PL/SQL block ના માળખાના ચાર સંરચનાત્મક ઘટકો

Section નું નામSection નો હેતુશું એ Mandatory છે?
DECLAREBlock માં વપરાતાં memory variables, constants, અને cursors વ્યાખ્યાયિત કરે છેOptional
BEGINચલાવવા યોગ્ય SQL અને PL/SQL procedural commands ધરાવે છેMandatory
EXCEPTIONRuntime database errors કે સ્થિતિઓ સુઘડ રીતે પકડે અને સંભાળે છેOptional
END;Procedural એકમના block ના નિર્ણાયક બંધ થવાનો સંકેત આપે છેMandatory

Practical

A Complete PL/SQL Block Structure

-- Enable server output to display messages on the console
SET SERVEROUTPUT ON;

DECLARE
  -- Declare a variable to hold a single ticket title
  v_ticket_title VARCHAR2(100);
BEGIN
  -- Fetch a title from our TicketDesk system directly into our variable
  SELECT title INTO v_ticket_title 
  FROM tickets 
  WHERE id = 1;
  
  -- Print the title to the user console
  DBMS_OUTPUT.PUT_LINE('Processing ticket: ' || v_ticket_title);
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    -- Handle the error smoothly if the ticket id does not exist
    DBMS_OUTPUT.PUT_LINE('Warning: Ticket with ID 1 was not found!');
END;
/

Copy કરીને Oracle FreeSQL ખોલો
Oracle FreeSQL, Oracle SQL નું મફત online editor છે. Code પહેલા copy થઈ જાય છે: તેને ત્યાં paste કરીને Run કરો.

Quiz

એક માન્ય ચલાવવા યોગ્ય PL/SQL block બનાવવા માટે કઈ sections ની જોડી બિલકુલ ન્યૂનતમ જરૂરિયાત દર્શાવે છે?

  1. DECLARE અને EXCEPTION
  2. DECLARE અને BEGIN
  3. BEGIN અને END;
  4. DECLARE, BEGIN, અને EXCEPTION
Show the answer

BEGIN અને END;

એક PL/SQL block ને ઓછામાં ઓછો એક સક્રિય execution નો વિસ્તાર જોઈએ. તેથી, એક માન્ય block એકમ process કરવા Oracle ને BEGIN અને END; એ બે જ mandatory સંરચનાત્મક keywords જોઈએ. DECLARE અને EXCEPTION ના વિસ્તારો સંપૂર્ણપણે optional છે.

Think first

માનસિક પડકાર: Variable ની પ્રાપ્યતા

જો તમે એક block ના DECLARE section ની અંદર એક variable વ્યાખ્યાયિત કરો, તો શું તમે એ જ block ના EXCEPTION section ની અંદર એની value વાંચી અને બદલી શકો? Tap કરતાં પહેલાં એના વિશે વિચારો.

Show the answer

હા! DECLARE section માં જાહેર થયેલો કોઈ પણ variable એ ચોક્કસ block ના પૂરા વ્યાપમાં સંપૂર્ણપણે દેખાય છે. એટલે કે તમે એને મુખ્ય BEGIN ના execution block અને EXCEPTION ના error handler બંનેની અંદર વાંચી કે update કરી શકો છો.

Watch out

ચૂપ Console નો ફાંદો

University ની laboratory ની practical પરીક્ષાઓ દરમિયાન ભારતીય BCA students સૌથી સામાન્ય જે ભૂલ કરે છે એ છે એક સંપૂર્ણ PL/SQL block ચલાવવો અને 'PL/SQL procedure successfully completed' કહેતો સંદેશો જોવો પણ કોઈ છપાયેલું output ન દેખાવું. યાદ રાખો કે default રીતે, Oracle terminal પર છાપવાનું બંધ રાખે છે. તમારો block ચલાવતાં પહેલાં તમારે environment નો command SET SERVEROUTPUT ON; ચલાવવો જ પડશે, નહીંતર તમારી DBMS_OUTPUT ની લીટીઓ સંપૂર્ણપણે અદૃશ્ય રહેશે!

Theory

વાસ્તવિક દુનિયાની કામગીરી અને ભવિષ્યનાં Semesters

Product integrity ની કામગીરી કે ભારે traffic વાળા ticketing platforms જેવી મોટી engineering ની ભૂમિકાઓમાં, અલગ અલગ SQL statements ચલાવવાથી ભયંકર network ની ઢીલ ઊભી થાય છે. PL/SQL એ અલગ statements ને સાથે બાંધે છે જેથી એ database ની memory ની અંદર જ મૂળભૂત રીતે ચાલે. આ block નું માળખું stored procedures અને database triggers બનાવવાનો નક્કર પાયો બનાવે છે, જે તમે તમારા Sem 3 ના SQLite mobile programming ના courses માં સ્થાનિક data ના માળખાં કાર્યક્ષમ રીતે સંભાળવા વાપરશો.

Summary

Key takeaways

  • PL/SQL એ Oracle નું procedural extension છે જે standard SQL statements ની આસપાસ loops અને variables બાંધે છે.
  • Code એક modular block ના માળખામાં ગોઠવાય છે જે ચાર સ્પષ્ટ કાર્યાત્મક sections નું બનેલું છે.
  • BEGIN અને END; keywords સંપૂર્ણપણે mandatory છે, જ્યારે DECLARE અને EXCEPTION optional છે.
  • Variables block ની ટોચે જાહેર થાય છે અને પૂરા execution ના એકમમાં ઉપલબ્ધ રહે છે.
  • Console ની લખાણની લીટીઓ દેખાય એની ખાતરી કરવા તમારા environment માં SET SERVEROUTPUT ON; ચલાવો.
  • Memory hook: તમારાં ઓજારો Declare કરો, કામ Begin કરો, Exceptions સંભાળો, અને કામ End કરો!

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from PL/SQL and Conditional Statements

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati

Introduction to PL/SQL (Definition & Block Structure) · Mastering SQL - PL/SQL (SEC-02 option A) · Gri-Learn