Visualizzazione post con etichetta sql. Mostra tutti i post
Visualizzazione post con etichetta sql. Mostra tutti i post

venerdì 2 settembre 2016

Oracle - Estrarre l'anno da una data con EXTRACT()

Appunti - Oracle EXTRACT() - Leggi l'articolo in 1 min
Ultimo aggiornamento 01/11/2021


Oggi rispondo a una domanda tecnica su Oracle che ho ricevuto all'indirizzo vm_tempbox-perparlarediweb[at]yahoo.it che è sempre a tua completa disposizione. dArdo mi domanda:
Avendo una data come posso prendere l'anno? Mi sembrava che in Oracle si potesse utilizzare la funzione YEAR, ma non va più?
(continua sotto) 
promo

  



Di seguito mostro lo schema di come utilizzare l'istruzione EXTRACT che Oracle fornisce allo scopo per il suo RDBMS (nelle versioni Oracle 9i e successive).


[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]

Di seguito ho riportato alcuni semplici esempi di utilizzo.

Forma canonica EXTRACT - Estrae anno in valore numerico

Usata nella forma evidenziata sotto la funzione restituisce un numero.

select extract(YEAR from BIRTHDATE)
from TABLE

(continua sotto) 
promo

   


Estrazione anno in formato testo senza l'uso di EXTRACT - Estrae valore alfanumerico

La funzione restituisce del testo.

select to_char(MYDATE, 'yyyy')
from TABLE

(continua sotto)
promo

  


Usare la funzione EXTRACT per eseguire dei calcoli sull'anno

Ustata in questo modo la funzione è molto utile per fare dei conteggi.
select extract(YEAR from MYDATE) - 1000
from TABLE


Se vuoi approfondire altri temi simili scrivilo pure sotto nei commenti.
Spero di essere stato utile. 
LLAP!

Se il post ti piace dillo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti gli aggiornamenti del blog direttamente dal feed RSS ed in email.
Segui il blog su Twitter e su Facebook.



Leggi anche:
Oracle - La funzione INSTR
Oracle - La funzione DECODE
Oracle - INSERT INTO SELECT
Oracle - La funzione CASE WHEN
Oracle - Ordine random su tabella
Oracle: esiste una funzione IS DATE in SQL+ ?
Oracle - Controllare il characterset in uso
Oracle - L'operatore Minus
Appunti Oracle - La funzione LTRIM

Siti consultati:


Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.


DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

giovedì 3 marzo 2016

Appunti Oracle - La funzione LTRIM

Alcuni dettagli sull'utilizzo della LTRIM in SQL+


 In questo articolo pubblico degli appunti che mi sono tornati utili per rispondere ad una vostra domanda arrivatami via Facebook.
Ciao vinc. Per Oracle esiste una funzione che elimini gli spazi a sinistra di una stringa?
Ciao serj
Ciao serj e grazie mille della domanda.
Ti confermo che in Oracle è disponibile una funzione a questo scopo.
La LTRIM in Oracle/PLSQL elimina gli spazi a sinistra di una stringa.
Di seguito la sintassi.

LTRIM( stringa1)

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]

È disponibile anche un secondo parametro opzionale nel caso in cui si voglia eliminare da sinistra una sottostringa invece dello spazio.

Di seguito la sintassi.
LTRIM( stringa1 [, trim_stringa] )

stringa1
La stringa dalla quale eliminare lo spazio o la trim_stringa.


(continua sotto)
promo





trim_string
Opzionale. La stringa che sarà aliminata dalla parte sinistra di stringa1.
In assenza del parametro la LTRIM eliminerà gli spazi dalla stringa1.

Per approfondimenti vedi
Oracle/PLSQL: LTRIM Function

Vedi anche la corrispondente funzione per la parte destra e per entrambe le parti.
Oracle/PLSQL: TRIM Function
Oracle/PLSQL: RTRIM Function

Ciao serj.
Per ulteriori dettagli ed esempi chiedi pure nei commenti.
Spero di esserti stato utile.

LLAP!

Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!


Siti consultati:
amazon.it/
techonthenet.com/

Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code qui sotto.


DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

giovedì 13 febbraio 2014

Oracle - INSERT INTO SELECT

Inserire dati in una tabella a partire da una query

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]

Ciao Vincent, mi puoi dire come inserire dati in una tabella B per tutte le righe ceh rispettano un criterio in uan tabella B? Sto utilizzando OracleXE
conFu50

Ciao conFu50, grazie per la domanda. 
Puoi utilizzare il seguente costrutto:

(continua sotto)
promo

INSERT INTO tabellaA ( col1, col2, num, varch ) 
SELECT 
   tabellaB.col1, 
   tabellaB.col2, 
   444 num, 
   'testo'  varch
FROM 
   tabellaB 
WHERE 
  tabellaB.ID = 'asduao9dfa98d7a90d8ga';

Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!


Siti consultati:
stackoverflow.com/
amazon.it/



Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.




(continua sotto)
promo


DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

lunedì 10 febbraio 2014

Oracle - La funzione CASE WHEN

SQL+ Funzione alternativa alla DECODE

Ciao Vincent, vi sono altre funzioni SQL+ utilizzabili al posto della DECODE?
Ciao hank
Ho recentemente scritto della funzione DECODE.
Una funzione che SQL+ Oracle offre ulteriormente è la CASE WHEN. Il costrutto di base è sempre if-then-else. Di seguito uno snippet:


(continua sotto)
promo

  


CASE {valore o espressione}
   WHEN {valore}
   THEN {risultato}
   ELSE {default} NULL se non specificato 
END

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]

Per ulteriori dettagli puoi consultare i Link utili.
Spero di esserti stato utile.

Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!


Siti consultati:
stackoverflow.com/
adp-gmbh.ch/
oracle-developer.net/
amazon.it/

Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.


(continua sotto)
promo


DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

giovedì 6 febbraio 2014

Oracle - La funzione INSTR

Controllo stringhe in SQL+

Con questo articolo rispondo alla domanda sotto. Sì. La funzione INSTR dovrebbe fare al caso tuo. Questa restituisce la posizione di una stringa (B) in un'altra stringa (A).

Ciao Vincent, tra le funzioni di gestione delle stringhe di SQL+ c'è qualcuna simile alla instring?


[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]

Per default il controllo è eseguito a partire dal carattere nella posizione 1 (della stringa A).
È possibile indicare espressamente da quale carattere della seconda stringa si vuole eseguire il controllo.
(continua sotto)
promo

  


SELECT INSTR({STRING_A},{STRING_B},{POSIZIONE}) FROM DUAL;

Spero di esserti stato utile.
Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!

Siti consultati:
psoug.org/
techonthenet.com/
mrwebmaster.it/
amazon.it/

Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.


(continua sotto)
promo


DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

lunedì 3 febbraio 2014

Oracle - La funzione DECODE

Funzione if-then-else in una query SQL?

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]
Ciao Vincent, hai mai utilizzato la DECODE di Oracle? A che serve?
neofita
La funzione DECODE di Oracle è utilizzata per i costrutti if-then-else nella logica SQL.
La funzione è specifica di oracle e non è disponibile per MySQL o SQL Server.
La logica può essere tradotta in CASE WHEN ANSI per rimanere compatibile con gli altri RDBMS.


(continua sotto)
promo

  

La sintassi è la seguente:
SELECT DECODE ( "COLONNA", 
"valore", "risultato", 
["valore", "risultato"],
{"default"} );
Per ulteriori dettagli puoi consultare il post SQL - DECODE Function | 1Keydata
Spero di esserti stato utile.

Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!


Siti consultati:
1keydata.com/
amazon.it/

Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.


(continua sotto)
promo




DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

mercoledì 13 febbraio 2013

Oracle - Limitazioni per l'utilizzo delle sequence

Stai utilizzando un DB Oracle e ti si è presentato l'errore "ORA-02287 numero di sequenza non consentito in questo caso". L'articolo ti spiega rapidamente come risolvere.

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]

Ciao Vincent, ho visto che scrivi a volte i Oracle. Spero tu possa aiutarmi. Ho necesità di utilizzare il valore di una sequence in una mia select ma mi dà questo errore Oracle "ORA-02287 numero di sequenza non consentito in questo caso". Non mi sembra di aver commesso errori nella scrittura dell'SQL.
bds
Ciao bds e grazie per il contatto. Ricordo sempre che il mio indirizzo email vm_tempbox-perparlarediweb[at]yahoo.it e tutti i riferimenti del blog sono a completa disposizione di chi volesse fare domande o proporre argomenti. 

Con le istruzioni che stai provando avrei potuto fare meglio, ma proverò comunque a risponderti. 

L'errore è certamente dovuto ad un utilizzo non previsto per i valori CURRVAL o NEXTVAL delle sequence Oracle che presentano alcune limitazioni su questi costrutti (vedi OTN Discussion Forums : ORA-02287: sequence number not allowed [EN] sotto nei Link utili):
- Una subquery in isruzioni di DELETE, SELECT, o UPDATE
- La query di una vista o di una vista materializzata
- Un'istruzione di SELECT con l'operatore DISTINCT
- Un'istruzione di SELECT con una clausola GROUP BY o ORDER BY
- Un'istruzione di SELECT combinata con un'altra istruzione di SELECT con operatore UNION, INTERSECT, o MINUS 
- La clausola WHERE di un'altra istruzione di SELECT
- Il valore di DEFAULT di una colonna in una istruzione CREATE TABLE o ALTER TABLE
- La condizione di un CHECK constraint

Vi sono comunque alcuni accorgimenti che permettono di superare in parte queste limitazioni (vedi ORA-02287 - Oracle FAQ [EN] sotto nei Link utili).

Per ulteriori dettagli sulle sequence vedi Oracle/PLSQL: Sequences (autonumber) [EN] sotto nei Link utili.

(continua sotto)
promo
Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!

ORA-02287: sequence number not allowed here - dBforums [EN]
ORA-02287 - Oracle FAQ [EN]
Oracle/PLSQL: Sequences (autonumber) [EN]

Siti consultati:
techonthenet.com/ [EN]



Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.


Download: Fast, Fun, Awesome

DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

venerdì 21 dicembre 2012

Oracle - Rinominare una tabella

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]

Abbiamo parlato in Oracle - è possibile rinominare un campo? come sia possibile rinominare una colonna in una tabella. All'occorrenza è possibile rinominare anche l'intera tabella. Questa funzionalità può tornare utile in deversi casi. Per esempio, nel ripristinare i dati può essere utile avere deu versioni della medesima tabella nel DB e poterle gestire separatamente, magari rinominando quella presente per prima nel sistema. Di seguito la semplice istruzione sqlplus:

alter table #NOME_ORIGINALE# rename to #NOME_DESIDERATO#;

(continua sotto)
promo
Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!
Oracle - Estrarre l'anno da una data con EXTRACT()
 

Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.


Download: Fast, Fun, Awesome

DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

venerdì 14 dicembre 2012

Oracle - Verificare la qualità di un BLOB in una tabella

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL]


Nel caso in cui si memorizzino dei BLOB in tabella, ad esempio dei documenti elettronici in formato .rtf (Rich Text Format) può essere necessario eseguire una verifica qualitativa su migliaia di righe. Nel caso in cui sia noto un termine o una porzione di stringa si può utilizzare una query che verifichi la presenza di un preciso contenuto. Questo tipo di controlli deve essere eseguito con estrema cautela. Eseguire il parse di molti BLOB contemporaneamente può richiedere molte risorse. Sconsiglio altresì l'uso di questo tipo di strumenti in ambiente di produzione. 

select * 
from     
WHERE dbms_lob.instr(,utl_raw.cast_to_raw('TESTO_DA_CERCARE')) > 0  


(continua sotto)
promo

Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.
Istalla la toolbar del blog... è gratis!

Indexing with Oracle Text [EN]
Oracle search inside blob content [EN]

Siti consultati:
http://blog.sbw.be/ [EN]
http://dba-oracle.com/ [EN]
http://docs.oracle.com/ [EN]
http://stackoverflow.com/ [EN]

Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.

Download: Fast, Fun, Awesome

DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.

lunedì 8 ottobre 2012

Oracle - char e byte nella dichiarazione di una colonna varchar2

[se non leggi bene l'articolo vai sul blog http://vincenzomiccolis.blogspot.it/ o sulla versione mobile http://bit.ly/AeHvgL

Ogni tanto mi capita di parlare di argomenti un po' più tecnici. Oggi rispondo ad un quesito su Oracle.

Ciao Vincent, ho una domanda relativa alla dichiarazione dei tipi sulle colonne delle tabelle in Oracle. Ho visto che ogni tanto parli dell'argomento ed eccomi quà.
bloB

Ciao bloB e grazie per il tuo intervento.
L'argomento è molto interessante.

Cerco di spiegare in parole semplici. Quando si costruisce una tabella si deve dichiarare il tipo per ogni colonna. Ad esempio...

CREATE TABLE stipendi 
(
importo number(18,3),
cognome varchar2(100),
nome varchar2(100)
)

Nel dichiarare una colonna di tipo varchar2() si deve obbligatoriamente indicare specificamente la dimensione massima della colonna.


cognome varchar2(100),


Per default la dimensione dovrebbe essere in Byte anche se dipende essenzialmente dalla configurazione del DB (vedi Oracle Data Types | SS64.cominit.ora SpFile Parameters | SS64.com [EN] sotto in Link utili). In questo scenario le due dichiarazioni seguenti dovrebbero coincidere


CREATE TABLE stipendi 
(
importo number(18,3),
cognome varchar2(100),
nome varchar2(100)
)



CREATE TABLE stipendi 
(
importo number(18,3),
cognome varchar2(100 byte),
nome varchar2(100 byte)
)


In un characterset possono essere compresi caratteri che per la loro rappresentazione richiedano più di un byte (ad es.UTF8). In questi casi può rivelarsi utile dichiarare il numero di caratteri che si vuole gestire a prescindere dai byte.


CREATE TABLE stipendi 
(
importo number(18,3),
cognome varchar2(100 char),
nome varchar2(100 char)
)


Si badi che il limite massimo delle colonne varchar2 rimane di 4000 Byte, quindi non necessariamente 4000 caratteri. Nella versione 10g il dimensionamento con la clausola char determina un aumento a 3 byte per carattere.


Alla prossima!
Se il post ti piace condividilo su Facebook
Tieni d'occhio questo post e i suoi commenti: iscriviti nella parte destra del blog.
Per qualsiasi dubbio, critica, segnalazione scrivimi a vm_tempbox-perparlarediweb[at]yahoo.it
Ricevi gratuitamente tutti i miei aggiornamenti del blog direttamente dal feed RSS ed in email.
Visita la mia pagina su Facebook e diventa fan. Segui @vincentmiccolis su Twitter dove oltre ai link agli articoli del blog condivido i link delle mie letture in tempo reale.


Siti consultati:
html.it/
ss64.com/ [EN]
1keydata.com/
stackoverflow.com/  [EN]

Alla prossima!
Per leggere i post con più chiarezza ed un allineamento adattato agli schermi più piccoli di iPhone e smartphone usa la versione mobile. Vai a http://bit.ly/AeHvgL oppure clicca/scansiona il QR code quì sotto.



DISCLAIMER: Il contenuto dei miei articoli è reso disponibile così com'è. Per Parlare di Web non offre alcuna garanzia sui contenuti che sono forniti a solo scopo di intrattenimento e/o didattico con l'obiettivo di fare da spunto di riflessione per il lettore proponendo idee, concetti e recensioni di prodotti e servizi tecnologici. Il blog Per Parlare di Web non si assume alcuna responsabilità per ogni conseguenza dannosa che possa risultare al lettore dall'adozione di indicazioni descritte nei nostri articoli e nelle nostre guide hardware e software.