Tutorial PL / SQL: tot el que heu de saber sobre PL / SQL



El tutorial PL / SQL cobreix totes les explicacions detallades de tots els conceptes necessaris per dominar la programació PL / SQL amb diversos exemples

PL / SQL és un llenguatge de procediment que supera les deficiències amb què s’enfronta Llenguatge de consulta estructurat . És una extensió de SQL i fins i tot podem utilitzar consultes SQL sense cap tipus de molèstia en cap aplicació o programa PL / SQL. En aquest tutorial de PL / SQL, revisarem detalladament els conceptes bàsics de PL / SQL. Els següents temes es tracten en aquest article.

Què és PL / SQL?

Significa extensió de llenguatge procedimental a llenguatge de consulta estructurat . Oracle ha creat PL / SQL que amplia algunes limitacions de SQL per proporcionar una solució més completa per a la creació d'aplicacions de missió crítica que s'executen a l'oracle .





logo-pl / sql tutorial - edureka

Característiques

  • PL / SQL proporciona la funcionalitat d’un llenguatge de procediment com ara la presa de decisions, la iteració, etc.

  • Mitjançant una sola ordre, PL / SQL pot executar diverses consultes.



    com trobar palíndrom a Java
  • També podem reutilitzar unitats PL / SQL, com ara funcions, activadors, procediments, etc. que s’emmagatzemen a la base de dades després de la creació.

  • PL / SQL també té un bloc de manipulació d’excepcions que gestiona les excepcions de PL / SQL.

  • També es pot fer una comprovació exhaustiva d’errors mitjançant PL / SQL



  • Les aplicacions escrites en PL / SQL són portables per a altres maquinaris i sistemes operatius sempre que Oracle hagi de ser operatiu.

PL / SQL vs SQL

SQL PL / SQL
SQL és una consulta única que s’utilitza per realitzar operacions DDL i DMLPL / SQL és un bloc de codis que s'utilitza per definir tot un programa o procediment / funció, etc.
Realment no defineix com cal fer les coses, sinó que defineix què cal ferPL / SQL defineix com cal fer les coses
Executa una única sentènciaExecuta un bloc de sentències alhora.
SQL s’utilitza principalment per manipular les dadesPL / SQL, en canvi, s’utilitza per crear aplicacions
No pot contenir codi PL / SQLCom que és una extensió SQL, pot contenir codi SQL

Estructures de blocs a PL / SQL

Normalment, PL / SQL organitza el codi en blocs. El bloc de codi sense nom es coneix com a bloc anònim. Es coneix com a bloc anònim perquè no es desa a la base de dades d’oracle. Vegem un bloc anònim a PL / SQL.

[DECLARAR] declaracions declaracions [COMENÇAR] declaracions d'execució [EXCEPCIÓ] declaracions d'excepció END /

Veient el diagrama que es mostra més amunt, podem veure que l’estructura de blocs es divideix en quatre parts, és a dir, declaració, inici, excepció i final. Intentem entendre com funciona l'estructura de blocs a PL / SQL. De totes aquestes seccions, la secció d'execució és obligatòria i la resta són opcionals.

  • La persona s'utilitza la paraula clau per a la secció de declaració s'utilitza per declarar tipus de dades i estructures com ara variables, funcions, etc.

  • COMENÇA La paraula clau s'utilitza per a la secció d'execució. És obligatori i conté totes les sentències que cal executar. En aquest bloc es defineix la lògica empresarial, en aquest bloc podem utilitzar instruccions procedimentals o SQL.

  • El EXCEPCIÓ La paraula clau s'utilitza per a la secció d'excepció. Conté totes les sentències d’excepció.

  • FINAL la paraula clau marca el final del bloc i la barra inversa '/' indica a l'eina que utilitzeu (Oracle Database Tool) per executar el bloc PL / SQL.

Aquí teniu un exemple senzill per mostrar com podem utilitzar el codi PL / SQL.

COMENÇAR NULL END /

Ara que ja sabem com funciona l'estructura de blocs a PL / SQL, entenem els diversos aspectes de PL / SQL com declarar, nomenar i assignar valors a les variables.

Variables PL / SQL

La variable de PL / SQL és bàsicament un nom que varia o ubicació d’emmagatzematge temporal que admet un tipus de dades concret. Vegem com podem utilitzar les variables en un programa PL / SQL.

Regles de denominació variable

PL / SQL segueix les regles següents per anomenar variables.

  • La variable no pot tenir més de 31 caràcters

  • El nom de la variable ha de començar amb un caràcter ASCII. Com que PL / SQL distingeix entre majúscules i minúscules, les lletres majúscules i les minúscules seran variables diferents.

  • Després del primer caràcter, hi ha d’haver un caràcter especial ($, _) o qualsevol número.

Convenis de denominació

Utilitzeu les següents convencions de noms que s’enumeren a continuació per utilitzar les variables.

Prefix Tipus de dades
v_VARCHAR2
n_NOMBRE
t_TAULA
r_FILA
d_DATA
b_BOOLEAN

Declaració

Intentem entendre com es fa la declaració de variables a PL / SQL

La declaració inclou el nom de la variable seguit del tipus de dades i separat per un punt i coma. A continuació es mostra un exemple per mostrar com es pot declarar una variable a PL / SQL.

DECLARAR v_name VARCHAR (25) n_age NUMBER (3) BEGIN NULL END

També podeu afegir la longitud del tipus de dades tal com hem fet a l’exemple anterior.

Ancoratges

L’àncora es refereix bàsicament a l’ús de la paraula clau% TYPE que per declarar una variable amb el tipus de dades associat al tipus de dades d’una columna d’una columna concreta d’una taula.

Mireu un exemple per entendre-ho. Suposem que tenim una taula EMPLEATS, podem utilitzar els ancoratges de la següent manera.

DECLARA v_name EMPLOYEE.NAME% TYPE n_age EMPLOYEE.AGE% TYPE BEGIN NULL END /

Tasca

L’assignació de variables és bastant senzilla, podem utilitzar l’operador d’assignació per assignar valors a una variable. L'exemple següent mostra com podem assignar valors a una variable.

DECLAREIX v_name VARCHAR (20) n_course VARCHAR (10) BEGIN v_name = 'edureka' v_course = 'sql' END /

Inicialització

També podem inicialitzar un valor per a la variable a la secció de declaració. L'exemple següent mostra com podem inicialitzar valors a una variable.

DECLARA v_name VARCHAR (20) = 'edureka' n_course VARCHAR (10) = 'sql' BEGIN NULL END /

Ara que sabem com podem treballar amb les variables, intentem comprendre com utilitzarem les funcions a PL / SQL.

Funció a PL / SQL

Una funció a PL / SQL és bàsicament un bloc anomenat que retorna un valor. També es coneix com a subrutina o subprograma, la sintaxi següent mostra com podem utilitzar les funcions a PL / SQL.

CREA FUNCIÓ [O SUBSTITUEIX] nom_funció [(paràmetre_1 [IN] [OUT] tipus_dades, paràmetre_2 [IN] [OUT] tipus_dades, paràmetre [IN] [OUT] tipus_dades] RETURN return_data_type IS BEGIN sentències return_data_type EXCEPTION END /

Primer de tot, heu d’especificar un nom de funció després de la paraula clau. El nom de la funció ha de començar amb un verb. Una funció pot tenir cap, un o més paràmetres que especifiquem als paràmetres. Hem d’especificar explícitament el tipus de dades de cada paràmetre i, a continuació, arriba el mode que pot fer qualsevol dels següents.

  • EN - El paràmetre IN és un paràmetre de només lectura.

  • Fora - És un paràmetre de només escriptura

  • DINS FORA - El paràmetre IN OUT és un paràmetre de lectura i escriptura.

Aquí teniu un exemple senzill per mostrar com fem servir les funcions a PL / SQL.

CREA O SUBSTITUEIX LA FUNCIÓ try_parse (iv_number A VARCHAR2) EL NOMBRE DE TORNADA ESTÀ COMENÇAT A TORNAR a_number (iv_number) EXCEPCIÓ QUAN altres LLAVORS TORNEN NULL FINAL

Cridar una funció

Intentem anomenar a la funció que hem fet en un bloc anònim a l'exemple següent.

SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_x number n_y number n_z number BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) DBMS n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

També podem trucar a la funció en una sentència SELECT. Ara que ja sabem com podem utilitzar les funcions a PL / SQL, provem d’entendre com treballem amb els procediments a PL / SQL.

Procediment PL / SQL

Un procediment és bàsicament un bloc que realitza una tasca específica. Mitjançant un procediment podem embolicar o encapsular lògica empresarial complexa i reutilitzar-les tant a la capa d’aplicacions com a la base de dades.

Vegem un exemple senzill per entendre com funciona el procediment a PL / SQL

CREA O SUBSTITUEIX PROCEDIMENT adjust_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) ESTÀ COMENÇANT - actualitza el salari dels empleats ACTUALITZA els empleats SET salari = salari + salari * in_percent / 100 WHERE employee_id = in_employee_id END

A l'exemple anterior, tenim dos paràmetres: el procediment ajusta el salari en un percentatge determinat i la paraula clau UPDATE actualitza el valor de la informació salarial.

Capçalera del procediment

La secció anterior a la paraula clau IS s’anomena capçalera del procediment. A continuació, es detallen alguns consells que cal conèixer al treballar els procediments.

  • esquema - És el nom opcional de l'esquema al qual pertany el procediment.

  • nom - El nom del procediment que hauria de començar amb un verb.

  • paràmetres - És la llista de paràmetres opcional.

  • AUTHID - Determina si el procediment s’executarà amb el privilegi de l’usuari actual o del propietari original del procediment.

Procedurergan de procediment

Tot el que ve després de la paraula clau IS es denomina cos del procediment. Tenim les declaracions de declaració, excepció i execució al cos del procediment. A diferència de la funció, la paraula clau RETURN d'un procediment s'utilitza per aturar l'execució i retornar el control a la persona que truca.

Cridant un procediment

Vegem com podem anomenar un procediment a PL / SQL.

Nom_procediment EXEC (param1, param2 i hellipparamN)

Podem trucar als procediments sense paràmetres només amb la paraula clau EXEC i el nom del procediment. Ara que sabem com podem treballar amb els procediments, intentem comprendre com s’utilitzen els blocs imbricats a PL / SQL.

Bloc imbricat

Un bloc imbricat no és res més que una combinació d’un o més blocs PL / SQL per obtenir un millor control sobre l’execució i un maneig excepcional del programa.

Aquí teniu un exemple senzill de bloc niat.

SET serveroutput A MIDA 1000000 La persona n_emp_id EMPLOYEES.EMPLOYEE_ID% TIPUS: = & emp_id1 BEGIN La persona n_emp_id employees.employee_id% TIPUS: = & emp_id2 v_Name employees.first_name% TIPUS DE COMENÇAR nom cognom SELECT INTO v_Name dels empleats ON employee_id = n_emp_id DBMS_OUTPUT.PUT_LINE ( ​​'Nom de l’empleat '|| n_emp_id ||' és '|| v_name) EXCEPCIÓ QUAN no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' not found ') END END /

El bloc PL / SQL exterior de l’exemple anterior es coneix com a bloc pare o bloc que conté; el bloc interior, en canvi, es coneix com a bloc fill o bloc tancat.

No és una bona idea fer servir les variables amb els mateixos noms als dos blocs perquè durant l'execució la variable de bloc fill substituirà la variable de bloc pare. Succeeix perquè PL / SQL dóna la primera prioritat a la variable dins del seu propi bloc.

Etiqueta de bloc

Podem superar aquest problema amb l’etiqueta de bloc que ens ajuda a fer referències a variables dins dels blocs mitjançant una etiqueta.

Aquí teniu un exemple senzill per mostrar com podem utilitzar una etiqueta de bloc.

 <>DECLARA ... COMENÇA ... FI

L’ús d’una etiqueta de blocs ajuda a millorar la llegibilitat del codi, obtenir un millor control i fer referències als blocs. Ara que ja sabem com podem treballar amb blocs imbricats, provem d’entendre com funciona la DECLARACIÓ IF a PL / SQL.

Declaració IF

PL / SQL té tres ENunciats IF

  • SI LLAVORS - És la declaració IF més simple si la condició és certa, les sentències s'executaran; si la condició és falsa, no fa res.

  • IF-THEN-ELSE - En això, s’afegeix la clàusula ELSE per a una seqüència alternativa d’afirmacions.

  • IF-THEN-ELSEIF - Ens permet executar múltiples condicions de prova en una seqüència.

Sintaxi IF-THEN

Condició IF THEN seqüència_de_estats ACABA IF

Sintaxi IF-THEN-ELSE

Condició IF THEN seqüència_de_instruccions ELSE seqüència_de_else_instruccions FINALITZACIÓ IF

Sintaxi IF-THEN-ELSEIF

IF condició1 THEN seqüència_de_estats1 ELSIF condició2 THEN seqüència_de_estats2 ELSE seqüència_de_estats3 END IF

Ara que hem acabat amb la DECLARACIÓ IF, vegem la sentència CASE a PL / SQL.

Declaració CASE

La sentència CASE ajuda bàsicament a executar una seqüència d’instruccions basada en un selector. Un selector, en aquest cas, pot ser qualsevol cosa, pot ser una variable, una funció o una expressió simple. Aquí teniu un exemple senzill per mostrar la sintaxi de la sentència CASE a PL / SQL.

[<>] CAS [TRUE | selector] QUAN expressió1 DESPRÉS seqüència_de_estats1 QUAN expressió2 DESPRÉS seqüència_de_estats2 ... QUAN expressióN DESPRÉS seqüència_de_estatsN [ELSE seqüència_de_estatsN + 1] CAS FINAL [nom_etiqueta]

A la sintaxi anterior, apareix el selector després de la paraula clau CASE. PL / SQL avaluarà el selector només una vegada per determinar quina sentència cal executar.

Seguit del selector hi ha la paraula clau WHEN. Si l'expressió compleix el selector, s'executa la sentència corresponent després de THEN paraula clau.

Ara que sabem com podem utilitzar una sentència CASE, intentem comprendre com utilitzarem les sentències de bucle al PL / SQL.

Declaració de bucle

Una sentència de bucle a PL / SQL és una sentència iterativa que us permet executar una seqüència d’instruccions diverses vegades. Aquí teniu un exemple senzill per mostrar la sintaxi d’una sentència de bucle a PL / SQL.

LOOP seqüència_de_estats END LOOP

Hi ha d’haver com a mínim una sentència executable entre la paraula clau LOOP i END LOOP.

Bucle amb l'extracte EXIT

Les sentències EXIT i EXIT when us permeten sortir del bucle. La sentència EXIT WHEN finalitza el bucle de manera condicional mentre que EXIT finalitza l'execució de forma incondicional.

LOOP ... SURT QUAN la condició acabi LOOP

Etiqueta de bucle

S'utilitza una etiqueta de bucle per qualificar el nom de la variable de comptador de bucle quan s'utilitza en un bucle imbricat. A continuació es mostra la sintaxi d’una etiqueta de bucle.

 <>LOOP seqüència_de_estats Etiqueta END LOOP

Ara que ja sabem com podem utilitzar les sentències de bucle, fem una ullada a les sentències de bucle mentre per a una millor comprensió.

Declaració de Loop

Podem utilitzar la sentència de bucle WHILE quan no es defineix el nombre d’execucions fins que no comença l’execució. La sintaxi següent s'utilitza per a una sentència de bucle WHILE a PL / SQL.

MENTRE condició LOOP seqüència_de_estats END LOOP

La condició de la sintaxi és un valor o expressió booleana que avalua ser TRUE, FALSE o NULL. Si la condició és TRUE, les sentències s'executaran, si és FALS, l'execució s'atura i el control passa a la següent instrucció executable.

Ara que sabem com podem utilitzar una instrucció de bucle WHILE, fem una ullada a la sentència de bucle FOR.

Per a la declaració de bucle

Una sentència de bucle FOR a PL / SQL ens permet executar una seqüència d’instruccions un nombre determinat de vegades. A continuació es mostra la sintaxi per utilitzar la sentència de bucle FOR a PL / SQL

PER bucle_counter A [REVERSAR] lower_bound .. lower_bound LOOP seqüència_de_instruccions END LOOP

PL / SQL crea una variable local loop_counter automàticament amb un tipus de dades INTEGER per al bucle, de manera que no haureu de declarar-ho explícitament. El límit inferior..el límit superior és l'interval sobre el qual itera el bucle. A més, heu de tenir com a mínim una sentència executable entre les paraules clau LOOP i END LOOP.

Ara que ja sabem com podem utilitzar les sentències de bucle a PL / SQL, donem una ullada al tractament excepcional de PL / SQL.

Manipulació excepcional

A PL / SQL qualsevol tipus d’error es tracta com una excepció. Una excepció es pot tractar com una condició especial que pot canviar o alterar el flux d'execució. A PL / SQL, hi ha dos tipus d’excepcions.

  • Excepció del sistema: El temps d'execució PL / SQL l'augmenta quan detecta un error.

  • Excepció definida pel programador - Aquestes excepcions les defineix el programador en una aplicació específica.

Definició d'una excepció

Cal declarar una excepció a PL / SQL abans de poder plantejar-la. Podem definir l'excepció mitjançant la paraula clau EXCEPTION tal com hem fet a l'exemple següent.

EXCEPTION_NAME EXCEPTION

Per generar una excepció, fem servir la paraula clau RAISE.

APLEGA EXCEPTION_NAME

Per tant, tot això tractava de PL / SQL, espero que aquest article us hagi ajudat a afegir valor al vostre coneixement. Per obtenir més informació sobre SQL o bases de dades, podeu consultar la nostra llista de lectura completa aquí: .

Si voleu obtenir una formació estructurada sobre MySQL, consulteu el nostre que inclou formació en directe dirigida per un instructor i experiència en projectes reals. Aquesta formació us ajudarà a entendre en profunditat MySQL i us ajudarà a dominar el tema.

Tens alguna pregunta? Esmenteu-lo a la secció de comentaris de ' Tutorial PL / SQL ”I em posaré en contacte amb vosaltres.