Visualizza vs stored procedure
Le viste e le procedure memorizzate sono due tipi di oggetti di database. Le viste sono una sorta di query memorizzate, che raccolgono dati da una o più tabelle. Ecco la sintassi per creare una vista
crea o sostituisci vista viewname
come
select_statement;
Una procedura memorizzata è un set di comandi SQL precompilato, memorizzato nel server del database. Ogni procedura memorizzata ha un nome chiamante, che viene utilizzato per chiamarla all'interno di altri pacchetti, procedure e funzioni. Questa è la sintassi (in ORACLE) per creare una procedura memorizzata, crea o sostituisci procedura nomeprocedura (parametri)
è
inizio
dichiarazioni;
eccezione
exception_handling
fine;
Visualizza
A View funge da tavolo virtuale. Nasconde un'istruzione select all'interno del suo corpo. Questa istruzione select può essere molto complessa, poiché prende i dati da diverse tabelle e viste. Pertanto, in altre parole, una vista è un'istruzione select denominata, che viene archiviata nel database. È possibile utilizzare una vista per nascondere agli utenti finali la logica dietro le relazioni tra tabelle. Poiché una vista è il risultato di una query archiviata, non conserva alcun dato. Raccoglie i dati dalle tabelle di base e mostra. Anche le viste svolgono un ruolo importante nella sicurezza dei dati. Quando il proprietario della tabella deve mostrare solo un insieme di dati agli utenti finali, la creazione di una vista è una buona soluzione. Le visualizzazioni possono essere divise in due categorie
- Viste aggiornabili (Viste che possono essere utilizzate per INSERT, UPDATE e DELETE)
- Viste non aggiornabili (visualizzazioni che non possono essere utilizzate per INSERT, UPDATE e DELETE)
Le viste aggiornabili non possono includere i seguenti, Set Operatori (INTERSECT, MINUS, UNION, UNION ALL)
DISTINTA
Funzioni di aggregazione di gruppo (AVG, COUNT, MAX, MIN, SUM, ecc.)
GRUPPO PER Clausola
ORDINA PER Clausola
CONNESSIONE PER Clausola
INIZIA CON Clausola
Espressione raccolta in un elenco selezionato
Sub query in A Select List
Unisciti alla query
Procedura archiviata
Le stored procedure sono denominate blocchi di programmazione. Devono avere un nome da chiamare. Le stored procedure accettano parametri come input dell'utente ed elaborano secondo la logica alla base della procedura e forniscono il risultato (o eseguono un'azione specifica). Dichiarazioni di variabili, assegnazioni di variabili, istruzioni di controllo, cicli, query SQL e altre funzioni/procedure/chiamate di pacchetti possono essere all'interno del corpo delle procedure.
Qual è la differenza tra View e Stored Procedure?
Vediamo le differenze tra questi due.
• Le viste fungono da 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 corpo, ma le procedure possono avere dichiarazioni di variabili, assegnazioni di variabili, istruzioni di controllo, cicli, query SQL e altre funzioni/procedure/chiamate di pacchetti come 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.
• Gli hint SQL possono essere utilizzati all'interno dell'istruzione view select, per ottimizzare il piano di esecuzione, ma gli hint SQL non possono essere utilizzati nelle stored procedure.
• DELETE, INSERT, UPDATE, SELECT, FLASHBACK e DEBUG possono essere concessi sulle viste, ma solo EXECUTE e DEBUG possono essere concessi sulle procedure.