logo

Introducció a PL/SQL

PL/SQL és un llenguatge estructurat en blocs que permet als desenvolupadors combinar el poder de l'SQL amb les declaracions de procediment. Totes les declaracions d'un bloc es passen al motor d'oracle alhora, la qual cosa augmenta la velocitat de processament i disminueix el trànsit.

Conceptes bàsics de PL/SQL

  • •PL/SQL són les sigles de Procedural Language extensions del Structured Query Language (SQL).
  • PL/SQL és una combinació d'SQL juntament amb les característiques procedimentals dels llenguatges de programació.
  • Oracle utilitza un motor PL/SQL per processar les sentències PL/SQL.
  • PL/SQL inclou elements de llenguatge procedimental com condicions i bucles. Permet declarar constants i variables, procediments i funcions, tipus i variables d'aquests tipus i desencadenants.

Desavantatges de SQL:



  • SQL no proporciona als programadors una tècnica de comprovació de condicions, bucle i ramificació.
  • Les sentències SQL es passen al motor Oracle d'una en una, la qual cosa augmenta el trànsit i disminueix la velocitat.
  • SQL no té cap facilitat per comprovar errors durant la manipulació de dades.

Característiques de PL/SQL:

  1. PL/SQL és bàsicament un llenguatge procedimental, que proporciona la funcionalitat de presa de decisions, iteració i moltes més característiques dels llenguatges de programació procedimental.
  2. PL/SQL pot executar una sèrie de consultes en un bloc mitjançant una única comanda.
  3. Es pot crear una unitat PL/SQL com ara procediments, funcions, paquets, activadors i tipus, que s'emmagatzemen a la base de dades per a la seva reutilització per les aplicacions.
  4. PL/SQL proporciona una característica per gestionar l'excepció que es produeix al bloc PL/SQL conegut com a bloc de gestió d'excepcions.
  5. Les aplicacions escrites en PL/SQL són portàtils al maquinari de l'ordinador o al sistema operatiu on Oracle està operatiu.
  6. PL/SQL Ofereix una àmplia comprovació d'errors.

Diferències entre SQL i PL/SQL:

SQL PL/SQL
SQL és una única consulta que s'utilitza per realitzar operacions DML i DDL. PL/SQL és un bloc de codis que s'utilitza per escriure tots els blocs del programa/procediment/funció, etc.
És declaratiu, que defineix què s'ha de fer, més que com s'han de fer les coses. PL/SQL és un procediment que defineix com s'han de fer les coses.
Executeu com una sola instrucció. Executar com un bloc sencer.
S'utilitza principalment per manipular dades. S'utilitza principalment per crear una aplicació.
No pot contenir codi PL/SQL. És una extensió de SQL, de manera que pot contenir SQL al seu interior.

Estructura del bloc PL/SQL:



paràmetre verilog

PL/SQL amplia SQL afegint construccions que es troben en llenguatges procedimentals, donant com a resultat un llenguatge estructural més potent que SQL. La unitat bàsica en PL/SQL és un bloc. Tots els programes PL/SQL estan formats per blocs, que es poden imbricar entre si.

Normalment, cada bloc realitza una acció lògica al programa. Un bloc té la següent estructura:

 DECLARE declaration statements; BEGIN executable statements EXCEPTIONS exception handling statements END;>
  • La secció Declarar comença amb DECLARAR paraula clau en la qual es poden declarar variables, constants, registres com a cursors que emmagatzema dades temporalment. Consisteix bàsicament en la definició d'identificadors PL/SQL. Aquesta part del codi és opcional.
  • La secció d'execució comença amb COMENÇAR i acaba amb FINAL paraula clau. Aquesta és una secció obligatòria i aquí s'escriu la lògica del programa per realitzar qualsevol tasca com bucles i declaracions condicionals. Dóna suport a tot DML ordres, DDL ordres i funcions integrades SQL*PLUS també.
  • La secció d'excepcions comença amb EXCEPCIÓ paraula clau. Aquesta secció és opcional i conté instruccions que s'executen quan es produeix un error en temps d'execució. Qualsevol excepció es pot gestionar en aquesta secció.

Identificadors PL/SQL

Hi ha diversos identificadors PL/SQL com ara variables, constants, procediments, cursors, activadors, etc.



  1. Les variables : Com molts altres llenguatges de programació, les variables en PL/SQL s'han de declarar abans del seu ús. També haurien de tenir un nom i un tipus de dades vàlids. Sintaxi per a la declaració de variables:
variable_name datatype [NOT NULL := value ];>
  1. Exemple per mostrar com declarar variables en PL/SQL:

C




SQL>ACTIVA LA SORTIDA DEL SERVIDOR;> SQL>DECLARAR> >var1 INTEGER;> >var2 REAL;> >var3 varchar2(20) ;> BEGIN> >null;> END;> />

>

>

  1. Sortida:
PL/SQL procedure successfully completed.>
  1. Explicació:
    • ACTIVA LA SORTIDA DEL SERVIDOR : S'utilitza per mostrar la memòria intermèdia utilitzada pel dbms_output.
    • var1 ENTER: És la declaració de variable, anomenada var1 que és de tipus enter. Hi ha molts altres tipus de dades que es poden utilitzar com float, int, real, smallint, long, etc. També admet variables utilitzades en SQL, així com NUMBER (prec, scale), varchar, varchar2, etc.
    • El procediment PL/SQL s'ha completat correctament.: Es mostra quan el codi es compila i s'executa correctament.
    • Barra inclinada (/) després de FIN;: La barra inclinada (/) diu a SQL*Plus que executi el bloc.
    • Operador d'assignació (:=) : S'utilitza per assignar un valor a una variable.
  2. Visualització de la sortida : Les sortides es mostren utilitzant DBMS_OUTPUT, que és un paquet integrat que permet a l'usuari mostrar informació de sortida, depuració i enviar missatges des de blocs PL/SQL, subprogrames, paquets i activadors. Vegem un exemple per veure com mostrar un missatge amb PL/SQL:

C

connectar-se a una base de dades java


data d'utilitat java



SQL>ACTIVA LA SORTIDA DEL SERVIDOR;> SQL>DECLARAR> >var varchar2(40) :=>'I love GeeksForGeeks'> ;> >BEGIN> >dbms_output.put_line(var);> >END;> >/>

>

>

  1. Sortida:
I love GeeksForGeeks PL/SQL procedure successfully completed.>
  1. Explicació:
    • dbms_output.put_line : Aquesta ordre s'utilitza per dirigir la sortida PL/SQL a una pantalla.
  2. Ús de comentaris : Com en molts altres llenguatges de programació, també en PL/SQL, es poden posar comentaris dins del codi que no tenen cap efecte en el codi. Hi ha dues sintaxis per crear comentaris en PL/SQL:
    • Comentari d'una sola línia: Per crear un comentari d'una sola línia, el símbol– –s'utilitza.
    • Comentari de diverses línies: Per crear comentaris que abasten diverses línies, el símbol/*i*/s'utilitza.
  3. Recollint les aportacions de l'usuari : Igual que en altres llenguatges de programació, també en PL/SQL, podem agafar l'entrada de l'usuari i emmagatzemar-la en una variable. Vegem un exemple per mostrar com prendre entrada dels usuaris a PL/SQL:

C

qiuck sort




SQL>ACTIVA LA SORTIDA DEL SERVIDOR;> SQL>DECLARAR> >-- taking input>for> variable a> >a number := &a;> > >-- taking input>for> variable b> >b varchar2(30) := &b;> >BEGIN> >null;> >END;> >/>

>

>

  1. Sortida:
Enter value for a: 24 old 2: a number := &a; new 2: a number := 24; Enter value for b: 'GeeksForGeeks' old 3: b varchar2(30) := &b; new 3: b varchar2(30) := 'GeeksForGeeks'; PL/SQL procedure successfully completed.>
  1. (***) Vegem un exemple sobre PL/SQL per demostrar tots els conceptes anteriors en un sol bloc de codi.

C

programa python per a la cerca binària




--PL/SQL code to print sum of two numbers taken from the user.> SQL>ACTIVA LA SORTIDA DEL SERVIDOR;> SQL>DECLARAR> > >-- taking input>for> variable a> >a integer := &a ;> > >-- taking input>for> variable b> >b integer := &b ;> >c integer ;> >BEGIN> >c := a + b ;> >dbms_output.put_line(>'Sum of '>||a||>' and '>||b||>' is = '>||c);> >END;> >/>

>

>

Enter value for a: 2 Enter value for b: 3 Sum of 2 and 3 is = 5 PL/SQL procedure successfully completed.>

Entorn d'execució PL/SQL:

El motor PL/SQL resideix al motor Oracle. El motor Oracle pot processar no només una sola instrucció SQL, sinó també un bloc de moltes sentències. La crida al motor Oracle només s'ha de fer una vegada per executar qualsevol nombre de sentències SQL si aquestes sentències SQL s'agrupen dins d'un bloc PL/SQL.