Differenza tra vista e procedura memorizzata

Visualizza vs stored procedure
 

Le viste e le stored procedure sono due tipi di oggetti di database. Le viste sono tipi di query memorizzate, che raccolgono dati da una o più tabelle. Ecco la sintassi per creare una vista

crea o sostituisci view viewname

come

select_statement;

Una stored procedure è un set di comandi SQL precompilato, che è memorizzato nel server di database. Ogni stored procedure ha un nome di chiamata, che viene utilizzato per chiamarli all'interno di altri pacchetti, procedure e funzioni. Questa è la sintassi (in ORACLE) per creare una stored procedure,

crea o sostituisci procedura procedurename (parametri)

è

inizio

dichiarazioni;

eccezione

la gestione delle eccezioni

fine;

vista

Una vista funge da tavolo virtuale. Nasconde una dichiarazione selezionata all'interno del suo corpo. Questa dichiarazione di selezione può essere molto complessa, che prende i dati da diverse tabelle e viste. Pertanto, in altre parole, una vista è un'istruzione select selezionata, che è memorizzata nel database. Una vista può essere utilizzata per nascondere la logica dietro le relazioni della tabella dagli utenti finali. Poiché una vista è il risultato di una query memorizzata, non conserva alcun dato. Raccoglie dati dalle tabelle e dagli spettacoli di base. Le viste svolgono anche un ruolo importante nella sicurezza dei dati. Quando il proprietario della tabella deve mostrare solo un insieme di dati agli utenti finali, creare una vista è una buona soluzione. Le viste possono essere divise in due categorie

  • Visualizzazioni aggiornabili (viste che possono essere utilizzate per INSERT, UPDATE e DELETE)
  • Viste non aggiornabili (le viste non possono essere utilizzate per INSERT, UPDATE e DELETE)

Le visualizzazioni aggiornabili non possono includere i seguenti,

Imposta operatori (INTERSETTO, MENO, UNIONE, UNIONE TUTTI)

DISTINCT

Funzioni aggregate di gruppo (AVG, COUNT, MAX, MIN, SUM, ecc.)

Clausola GROUP BY

ORDINA PER clausola

CONNECT BY Clausola

INIZIA CON clausola

Espressione di raccolta in una lista di selezione

Query secondaria in A Seleziona lista

Iscriviti a Query 

Procedura memorizzata

Le stored procedure sono denominate blocchi di programmazione. Devono avere un nome da chiamare. Le stored procedure accettano i parametri come input dell'utente e elaborano secondo la logica dietro la procedura e forniscono il risultato (o eseguono un'azione specifica). Dichiarazioni di variabili, assegnazioni di variabili, istruzioni di controllo, cicli, interrogazioni SQL e altre funzioni / procedure / chiamate di pacchetto possono trovarsi all'interno del corpo di procedure. 

Qual è la differenza tra Visualizza e stored procedure?

Vediamo le differenze tra questi due.

• Le viste funzionano come tabelle virtuali. Possono essere utilizzati direttamente dalla chiusura delle query SQL (seleziona), ma le procedure non possono essere utilizzate dalla chiusura delle query.

• Le viste hanno solo un'istruzione select come loro corpo, ma le procedure possono avere dichiarazioni di variabili, assegnazioni di variabili, istruzioni di controllo, loop, query SQL e altre funzioni / procedure / chiamate di pacchetti come il suo corpo.

• La procedura accetta i parametri da eseguire, ma le viste non vogliono che i parametri vengano eseguiti.

• È possibile creare tipi di record dalle viste utilizzando% ROWTYPE, ma utilizzando le procedure, non è possibile creare tipi di record.

• I suggerimenti SQL possono essere utilizzati all'interno dell'istruzione select select, per ottimizzare il piano di esecuzione, ma i hint SQL non possono essere utilizzati nelle stored procedure.

• ELIMINA, INSERISCI, AGGIORNA, SELEZIONA, FLASHBACK e DEBUG possono essere concessi sulle viste, ma solo EXECUTE e DEBUG possono essere concessi sulle procedure.