Post

Visualizzazione dei post da agosto, 2014

SELECT Statement

Le SELECT statements secondo lo standard ANSI SQL:1999 (American National Standards Institute) hanno la seguente sintassi: SELECT table1.column, table2.column FROM table1 [NATURAL JOIN table2] | [JOIN table2 USING (column_name1, nome_colonna2)] | [JOIN table2 ON (table1.column_name = table2.column_name and table1.column_name2 = table2.column_name2)] | [LEFT | RIGHT | FULL OUTER JOIN table2 ON (table1.column_name = table2.column_name)] | [CROSS JOIN table2]; La sintassi tradizionale di Oracle attinente alle join è la seguente: SELECT table1.column, table2.column FROM table1, table2 [WHERE (table1.column_name = table2.column_name)] | [WHERE (table1.column_name(+)= table2.column_name)] |         -- RIGHT OUTER JOIN [WHERE (table1.column_name) = table2.column_name) (+)] ;    -- LEFT OUTER JOIN NATURAL JOIN  tutte le colonne della tabella source e target che hanno lo stesso nome sono automaticamente associate pertanto non è necessario specificare le colonne in join. Se l

SAVEPOINT

Il comando SAVEPOINT è utilizzato all'interno di una transazione per dividerla in più sezioni. Interviene per gestire le azioni del comando ROLLBACK. Permette di effettuare il rollback fino ad un certo punto e di applicare le modifiche apportate prima di quel punto. S i n t a s s i SAVEPOINT nome_savepoint; E s e m p i o Eseguiamo un Update e una Delete della tabella locations. update locations set postal_code = '00140' where location_id = 1000; SAVEPOINT a; delete locations where location_id = 1100; ROLLBACK TO a; COMMIT; La COMMIT verrà eseguita solo sull' Update mentre verrà eseguito il ROLLBACK della Delete. Se viene inserito un altro Savepoint con lo stesso nome, il primo Savepoint verrà trascurato. Es e m p i o update locations set postal_code = '00145' where location_id = 1000; Insert into locations values (4000, 'via bello','99999','Bologna','Italia','IT'); SAVEPOINT a; Insert into locations va

QUOTATION MARKS e QUOTE OPERATOR

Le virgolette alte doppie o doppi apici (QUOTATION MARKS) vengono usate per rinominare una colonna di una tabella. E s e m p i o SELECT 12 +10 "TOT"   from dual; TOT ---- 22 Il singolo apice (SINGLE QUOTATION MARKS) al contrario serve nella definizione dei Character Literal, che non è altro che una sequenza di caratteri racchiusi da apici singoli. E s e m p i o SELECT 'Matt Murdock' "NOME" from dual; NOME ------------ Matt Murdock Se la stringa Character Literal contiene un singolo apice compare il messaggio di errore seguente: SELECT  'Matt Murdock's power'  FROM dual; ORA-00923: parola chiave FROM non trovata dove prevista 00923. 00000 -  "FROM keyword not found where expected" Questo perché Oracle interpreta il carattere s come il nome della colonna "s" e si aspetta dopo il carattere s la clausola FROM. Per risolvere il problema basta aggiungere un singolo apice prima del carattere s ma l'utilizzo

Operatori SINGLE-ROW

Di seguito gli operatori single-row: = , <>, <, >