Tutorial PL / SQL: tutto ciò che devi sapere su PL / SQL

Il tutorial PL / SQL copre tutta la spiegazione dettagliata di tutti i concetti necessari richiesti per padroneggiare la programmazione PL / SQL con vari esempi

PL / SQL è un linguaggio procedurale che supera le carenze affrontate da Structured Query Language . È un'estensione di SQL e possiamo persino utilizzare query SQL senza problemi in qualsiasi applicazione o programma PL / SQL. In questo tutorial PL / SQL, esamineremo in dettaglio i concetti di base di PL / SQL. I seguenti argomenti vengono trattati in questo articolo.

Cos'è PL / SQL?

È l'acronimo di estensione del linguaggio procedurale a Structured Query Language . Oracle ha creato PL / SQL che estende alcune limitazioni di SQL per fornire una soluzione più completa per la creazione di applicazioni mission-critical in esecuzione su Oracle .





tutorial logo-pl / sql - edureka

Caratteristiche

  • PL / SQL fornisce la funzionalità di un linguaggio procedurale come il processo decisionale, l'iterazione, ecc.

  • Utilizzando un singolo comando, PL / SQL può eseguire una serie di query.



  • Possiamo anche riutilizzare unità PL / SQL come funzioni, trigger, procedure, ecc. Che vengono archiviate nel database dopo la creazione.

  • PL / SQL ha anche un blocco di gestione delle eccezioni che gestisce le eccezioni in PL / SQL.

  • È inoltre possibile un controllo completo degli errori utilizzando PL / SQL



  • Le applicazioni scritte in PL / SQL sono portabili su altri hardware e sistemi operativi a condizione che Oracle sia operativo.

PL / SQL contro SQL

SQL PL / SQL
SQL è una singola query utilizzata per eseguire operazioni DDL e DMLPL / SQL è un blocco di codici utilizzato per definire un intero programma o procedura / funzione, ecc
Non definisce realmente come le cose devono essere fatte, piuttosto definisce cosa deve essere fattoPL / SQL definisce come le cose devono essere fatte
Esegue una singola istruzioneEsegue un blocco di istruzioni contemporaneamente.
SQL viene utilizzato principalmente per manipolare i datiPL / SQL, d'altra parte, viene utilizzato per creare applicazioni
Non può contenere codice PL / SQLPoiché è un'estensione SQL, può contenere codice SQL al suo interno

Strutture a blocchi in PL / SQL

PL / SQL in genere organizza il codice in blocchi. Il blocco di codice senza nome è noto come blocco anonimo. È noto come blocco anonimo perché non viene salvato nel database Oracle. Diamo un'occhiata a un blocco anonimo in PL / SQL.

[DECLARE] istruzioni di dichiarazione [BEGIN] istruzioni di esecuzione [EXCEPTION] istruzioni di eccezione END /

Guardando il diagramma mostrato sopra, possiamo vedere che la struttura a blocchi è divisa in quattro parti, cioè dichiarazione, inizio, eccezione e fine. Cerchiamo di capire come funziona la struttura a blocchi in PL / SQL. Di tutte queste sezioni, la sezione di esecuzione è obbligatoria e le restanti sono tutte facoltative.

  • DICHIARARE la parola chiave viene utilizzata per la sezione dichiarazione viene utilizzata per dichiarare tipi di dati e strutture come variabili, funzioni, ecc.

  • INIZIO la parola chiave viene utilizzata per la sezione di esecuzione. È obbligatorio e contiene tutte le istruzioni che devono essere eseguite. Questo blocco è dove viene definita la logica di business, possiamo usare sia istruzioni procedurali che SQL in questo blocco.

  • Il ECCEZIONE la parola chiave viene utilizzata per la sezione delle eccezioni. Contiene tutte le istruzioni di eccezione.

  • FINE la parola chiave segna la fine del blocco e la barra all'indietro '/' indica lo strumento che stai utilizzando (Oracle Database Tool) per eseguire il blocco PL / SQL.

Ecco un semplice esempio per mostrare come possiamo usare il codice PL / SQL.

BEGIN NULL END /

Ora che sappiamo come funziona la struttura a blocchi in PL / SQL, comprendiamo i vari aspetti di PL / SQL come la dichiarazione, la denominazione e l'assegnazione di valori alle variabili.

Variabili PL / SQL

La variabile in PL / SQL è fondamentalmente un nome che varia o una posizione di archiviazione temporanea che supporta un particolare tipo di dati. Diamo un'occhiata a come possiamo usare le variabili in un programma PL / SQL.

Regole di denominazione delle variabili

PL / SQL segue le seguenti regole per la denominazione delle variabili.

  • La variabile non può contenere più di 31 caratteri

  • Il nome della variabile dovrebbe iniziare con un carattere ASCII. Poiché PL / SQL distingue tra maiuscole e minuscole, una lettera maiuscola e una minuscola saranno variabili diverse.

  • Dopo il primo carattere, deve esserci un carattere speciale ($, _) o un numero qualsiasi.

Convenzioni di denominazione

Utilizzare le seguenti convenzioni di denominazione elencate di seguito per utilizzare le variabili.

Prefisso Tipo di dati
v_VARCHAR2
n_NUMERO
t_TAVOLO
r_RIGA
d_DATA
b_BOOLEANO

Dichiarazione

Proviamo a capire come viene eseguita la dichiarazione delle variabili in PL / SQL

La dichiarazione include il nome della variabile seguito dal tipo di dati e separato da un punto e virgola. Di seguito è riportato un esempio per mostrare come è possibile dichiarare una variabile in PL / SQL.

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

Puoi anche aggiungere la lunghezza del tipo di dati come abbiamo fatto nell'esempio sopra.

Ancore

L'ancora si riferisce fondamentalmente all'uso della parola chiave% TYPE per dichiarare una variabile con il tipo di dati associato al tipo di dati di una colonna di una particolare colonna in una tabella.

come visualizzare array in php

Dai un'occhiata a un esempio per capirlo. Supponiamo di avere una tabella EMPLOYEES, possiamo usare le ancore nel modo seguente.

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

Incarico

L'assegnazione di variabili è abbastanza semplice, possiamo usare l'operatore di assegnazione per assegnare valori a una variabile. L'esempio seguente mostra come assegnare valori a una variabile.

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

Inizializzazione

Possiamo anche inizializzare un valore per la variabile nella sezione dichiarazione. Il seguente esempio mostra come inizializzare i valori su una variabile.

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

Ora che sappiamo come lavorare con le variabili, proviamo a capire come utilizzeremo le funzioni in PL / SQL.

Funzione in PL / SQL

Una funzione in PL / SQL è fondamentalmente un blocco denominato che restituisce un valore. È anche noto come subroutine o sottoprogramma, la seguente sintassi mostra come possiamo usare le funzioni in PL / SQL.

CREATE [OR REPLACE] FUNCTION nome_funzione [(parameter_1 [IN] [OUT] data_type, parameter_2 [IN] [OUT] data_type, parameter_N [IN] [OUT] data_type] RETURN return_data_type IS BEGIN istruzioni return return_data_type EXCEPTION END /

Prima di tutto, devi specificare un nome di funzione dopo la parola chiave. Il nome della funzione deve iniziare con un verbo. Una funzione può non avere nessuno, uno o più parametri che specifichiamo nei parametri. Dobbiamo specificare il tipo di dati di ciascun parametro in modo esplicito, quindi viene visualizzata la modalità che può eseguire una delle seguenti operazioni.

  • NEL - Il parametro IN è un parametro di sola lettura.

    qual è il tag span in html
  • FUORI - È un parametro di sola scrittura

  • DENTRO FUORI - Il parametro IN OUT è sia di lettura che di scrittura.

Ecco un semplice esempio per mostrare come usiamo le funzioni in PL / SQL.

CREA O SOSTITUISCI FUNZIONE try_parse (iv_number IN VARCHAR2) RETURN NUMBER IS BEGIN RETURN to_number (iv_number) EXCEPTION WHEN others THEN RETURN NULL END

Chiamare una funzione

Proviamo a chiamare la funzione che abbiamo creato in un blocco anonimo nell'esempio seguente.

SET SERVEROUTPUT SU DIMENSIONE 1000000 DECLARE n_x numero n_y numero n_z numero BEGIN n_x: = try_parse ('256') n_y: = try_parse ('29 .72 ') n_z: = try_parse (' pqrs ') DBMS_OUTPUT.PUT_LINE (n_x) DBMS_OUT n_y) DBMS_OUTPUT.PUT_LINE (n_z) END /

Possiamo anche chiamare la funzione in un'istruzione SELECT. Ora che sappiamo come possiamo usare le funzioni in PL / SQL, proviamo a capire come lavoriamo con le procedure in PL / SQL.

Procedura PL / SQL

Una procedura è fondamentalmente un blocco che svolge un'attività specifica. Utilizzando una procedura possiamo racchiudere o incapsulare complesse logiche di business e riutilizzarle sia a livello di applicazione che di database.

Diamo uno sguardo ad un semplice esempio per capire come funziona la procedura in PL / SQL

CREATE OR REPLACE PROCEDURE adjusted_salary (in_employee_id IN EMPLOYEES.EMPLOYEE_ID% TYPE, in_percent IN NUMBER) IS BEGIN - aggiorna lo stipendio del dipendente AGGIORNA dipendenti SET salary = stipendio + stipendio * in_percent / 100 WHERE employee_id = in_employee_id END

Nell'esempio precedente, abbiamo due parametri, la procedura regola lo stipendio di una determinata percentuale e la parola chiave UPDATE aggiorna il valore nelle informazioni sullo stipendio.

Intestazione della procedura

La sezione prima della parola chiave IS è chiamata intestazione della procedura. Di seguito sono riportati alcuni suggerimenti che è necessario conoscere mentre si lavora con le procedure.

  • schema - È il nome facoltativo dello schema a cui appartiene la procedura.

  • nome - Il nome della procedura che dovrebbe iniziare con un verbo.

  • parametri - È l'elenco facoltativo di parametri.

  • AUTHID - Determina se la procedura verrà eseguita con il privilegio dell'utente corrente o del proprietario originale della procedura.

Corpo della procedura

Tutto ciò che viene dopo la parola chiave IS è chiamato corpo della procedura. Abbiamo la dichiarazione, l'eccezione e le istruzioni di esecuzione nel corpo della procedura. A differenza della funzione, la parola chiave RETURN in una procedura viene utilizzata per interrompere l'esecuzione e restituire il controllo al chiamante.

Chiamare una procedura

Vediamo come possiamo chiamare una procedura in PL / SQL.

EXEC nome_procedura (param1, param2 e hellipparamN)

Possiamo chiamare le procedure senza parametri usando solo la parola chiave EXEC e il nome della procedura. Ora che sappiamo come lavorare con le procedure, proviamo a capire come vengono usati i blocchi annidati in PL / SQL.

Blocco annidato

Un blocco annidato non è altro che una combinazione di uno o più blocchi PL / SQL per ottenere un migliore controllo sull'esecuzione e una gestione eccezionale per il programma.

Ecco un semplice esempio di un blocco nidificato.

SET SERVEROUTPUT ON SIZE 1000000 DECLARE n_emp_id EMPLOYEES.EMPLOYEE_ID% TYPE: = & emp_id1 BEGIN DECLARE n_emp_id Employee.employee_id% TYPE: = & emp_id2 v_name Employee.first_name% TYPE BEGIN SELECT first_nPID_Dipendenti.employee_id% TYPE: = & emp_id2 v_name employee.first_name% TYPE BEGIN SELECT first_name_emp_name_MS INTO nome_vemp_UT del dipendente '|| n_emp_id ||' è '|| v_name) ECCEZIONE QUANDO no_data_found THEN DBMS_OUTPUT.PUT_LINE (' Employee '|| n_emp_id ||' non trovato ') END /

Il blocco PL / SQL esterno nell'esempio precedente è noto come blocco padre o blocco di inclusione, il blocco interno, d'altra parte, è noto come blocco figlio o blocco racchiuso.

Non è una buona idea usare le variabili con lo stesso nome in entrambi i blocchi perché durante l'esecuzione la variabile blocco figlio sovrascriverà la variabile blocco genitore. Succede perché PL / SQL dà la priorità alla variabile all'interno del proprio blocco.

Etichetta di blocco

Possiamo superare questo problema con l'etichetta del blocco che ci aiuta a fare riferimenti alle variabili all'interno dei blocchi utilizzando un'etichetta.

Ecco un semplice esempio per mostrare come possiamo usare un'etichetta di blocco.

 <>DICHIARARE ... INIZIARE ... FINE

L'utilizzo di un'etichetta di blocco aiuta a migliorare la leggibilità del codice, ottenere un controllo migliore e fare riferimenti ai blocchi. Ora che sappiamo come lavorare con i blocchi annidati, proviamo a capire come funziona IF STATEMENT in PL / SQL.

Istruzione IF

PL / SQL ha tre DICHIARAZIONI IF

  • SE POI - È il più semplice IF STATEMENT se la condizione è vera le istruzioni verranno eseguite, se la condizione è falsa, non fa nulla.

  • SE-ALLORA-ALTRO - In questo, la clausola ELSE viene aggiunta per una sequenza alternativa di istruzioni.

  • SE-ALLORA-ELSEIF - Ci consente di eseguire più condizioni di test in una sequenza.

Sintassi IF-THEN

IF condizione THEN sequenza_of_statements END IF

Sintassi IF-THEN-ELSE

IF condition THEN sequence_of_if_statements ELSE sequence_of_else_statements END IF

Sintassi IF-THEN-ELSEIF

qual è la classe scanner in java

IF condition1 THEN sequence_of_statements1 ELSIF condition2 THEN sequence_of_statements2 ELSE sequence_of_statements3 END IF

Ora che abbiamo finito con IF STATEMENT, esaminiamo l'istruzione CASE in PL / SQL.

Dichiarazione CASE

L'istruzione CASE aiuta fondamentalmente nell'esecuzione di una sequenza di istruzioni basate su un selettore. Un selettore, in questo caso, può essere qualsiasi cosa, può essere una variabile, una funzione o una semplice espressione. Ecco un semplice esempio per mostrare la sintassi dell'istruzione CASE in PL / SQL.

[<>] CASE [TRUE | selettore] WHEN espressione1 THEN sequenza_di_statements1 WHEN espressione2 THEN sequenza_di_statements2 ... WHEN espressioneN THEN sequenza_di_statementN [ELSE sequenza_di_statementsN + 1] END CASE [nome_etichetta]

Nella sintassi precedente, dopo la parola chiave CASE viene il selettore. PL / SQL valuterà il selettore solo una volta per determinare quale istruzione deve essere eseguita.

Seguita dal selettore è la parola chiave WHEN. Se l'espressione soddisfa il selettore, viene eseguita l'istruzione corrispondente dopo la parola chiave THEN.

Ora che sappiamo come utilizzare un'istruzione CASE, proviamo a capire come utilizzeremo le istruzioni loop in PL / SQL.

Istruzione Loop

Un'istruzione loop in PL / SQL è un'istruzione iterativa che consente di eseguire più volte una sequenza di istruzioni. Di seguito è riportato un semplice esempio per mostrare la sintassi di un'istruzione loop in PL / SQL.

LOOP sequence_of_statements END LOOP

Deve essere presente almeno un'istruzione eseguibile tra le parole chiave LOOP e END LOOP.

Loop con istruzione EXIT

Le istruzioni EXIT e EXIT when consentono di uscire dal ciclo. L'istruzione EXIT WHEN termina il ciclo in modo condizionale mentre EXIT termina l'esecuzione incondizionatamente.

LOOP ... EXIT WHEN condizione END LOOP

Etichetta loop

Un'etichetta di ciclo viene utilizzata per qualificare il nome della variabile contatore di ciclo quando viene utilizzata in un ciclo annidato. Di seguito è riportata la sintassi di un'etichetta di loop.

 <>LOOP sequence_of_statements END LOOP label

Ora che sappiamo come possiamo usare le istruzioni loop, diamo uno sguardo alle istruzioni while loop per una migliore comprensione.

Istruzione While Loop

Possiamo usare l'istruzione del ciclo WHILE quando il numero di esecuzioni non è definito fino all'inizio dell'esecuzione. La sintassi seguente viene utilizzata per un'istruzione di ciclo WHILE in PL / SQL.

WHILE condizione LOOP sequence_of_statements END LOOP

La condizione nella sintassi è un valore booleano o un'espressione che restituisce TRUE, FALSE o NULL. Se la condizione è TRUE, le istruzioni verranno eseguite, se è FALSE l'esecuzione si interrompe e il controllo passa all'istruzione eseguibile successiva.

Ora che sappiamo come utilizzare un'istruzione WHILE loop, diamo un'occhiata all'istruzione FOR loop.

Istruzione For Loop

Un'istruzione del ciclo FOR in PL / SQL ci consente di eseguire una sequenza di istruzioni per un numero definito di volte. Di seguito è riportata la sintassi per utilizzare l'istruzione ciclo FOR in PL / SQL

FOR loop_counter IN [REVERSE] lower_bound .. higher_bound LOOP sequence_of_statements END LOOP

PL / SQL crea automaticamente una variabile locale loop_counter con un tipo di dati INTEGER per il ciclo in modo da non doverlo dichiarare esplicitamente. Il limite inferiore .. il limite superiore è l'intervallo in cui il ciclo itera. Inoltre, è necessario disporre di almeno un'istruzione eseguibile tra le parole chiave LOOP e END LOOP.

Ora che sappiamo come utilizzare le istruzioni loop in PL / SQL, diamo un'occhiata alla gestione eccezionale in PL / SQL.

Maneggevolezza eccezionale

In PL / SQL qualsiasi tipo di errore viene considerato un'eccezione. Un'eccezione può essere trattata come una condizione speciale che può cambiare o alterare il flusso di esecuzione. In PL / SQL esistono due tipi di eccezioni.

  • Eccezione di sistema - Viene generato dal run-time PL / SQL quando rileva un errore.

  • Eccezione definita dal programmatore - Queste eccezioni sono definite dal programmatore in un'applicazione specifica.

Definizione di un'eccezione

Un'eccezione in PL / SQL deve essere dichiarata prima di poter essere sollevata. Possiamo definire l'eccezione utilizzando la parola chiave EXCEPTION come abbiamo fatto nell'esempio seguente.

EXCEPTION_NAME EXCEPTION

Per sollevare un'eccezione, usiamo la parola chiave RAISE.

RAISE EXCEPTION_NAME

Quindi era tutto PL / SQL, spero che questo articolo ti abbia aiutato ad aggiungere valore alle tue conoscenze. Per ulteriori informazioni su SQL o database, è possibile fare riferimento al nostro elenco completo di letture qui: .

Se desideri ricevere una formazione strutturata su MySQL, dai un'occhiata al nostro che viene fornito con formazione dal vivo con istruttore e esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere MySQL in profondità e ti aiuterà a ottenere la padronanza dell'argomento.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di ' Tutorial PL / SQL 'E ti ricontatterò.