Errore con tipo Varchar e SUM in Oracle

Sto attualmente utilizzando un database Oracle per imparare il linguaggio PL/SQL, ed ho un problema da risolvere.

Sto cercando di fare l'import di dati da un file csv, e devo gestire delle date, per questo ho definito una colonna 'TIME' di tipo VARCHAR, una cosa simile a questa:

TIME
01:00.250
02:37.408
01:29.803
...

vorrei sommare secondo certi criteri queste ore, minuti e secondi; ma provando ad utilizzare SUM su questo tipo di dato varchar ottengo un errore, quasi certamente dovuto ai caratteri non numerici come ':' e '.' , in molti mi hanno consigliato di non usare varchar ma un tipo DATE, non so bene destreggiarmi, voi riuscite a consigliarmi?

In Corso 1
Oracle 23-02-2019 1 Risposta 1267 Visite +2
Luciano Gavetto

Luciano Gavetto

Autore di questa domanda

Risposte ( 1 approvate )

  1. Silvio Perfinelli
    0
    23-02-2019 14:21:40
    Rispondi

    Oracle non possiede il singolo tipo TIME. Così se vuoi usare la 'funzione' SUM, un modo semplice per ovviare a questo problema, è convertire le ore, i minuti ed i secondi di questo campo VARCHAR in secondi numerici veri e promi, e poi su questi vai a fare la somma.

     

    Potresti scrivere una PL/SQL del genere:

    SELECT SUM( to_number(substr(time, 1, 2)) * 60 +
                to_number(substr(time, 4)) 
              ) AS seconds

Rispondi

Per poter rispondere a questa domanda, devi essere registrato e loggato sul sito, dopodichè compila il box sottostante cercando di essere il più chiaro ed esauriente possibile, la tua risposta potrebbe essere la soluzione che l'utente cerca ed essere contrassegnata come migliore, consentendoti così di ottenere punti ed autorevolezza.

 Domanda Precedente

 Elenco Domande 

Domanda Successiva