Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [oracle] Insert Date

  1. #1

    [oracle] Insert Date

    Ciao a tutti...

    Ho una tabella definita in oracle in cui è definito un campo DataNascita di tipo DATE.
    Quando faccio la INSERT mi restituisce il seguente errore:
    ORA-00932: inconsistent datatypes: expected DATE got NUMBER.
    Ho provato a fare la INSERT nei seguenti modi:
    INSERT INTO tabellaVALUES (193795, 'PROVA', 'PROVA', 1977/01/25, 'PROVA', '0','0','0','','','',null,'','',null,'','','')

    INSERT INTO tabella VALUES (193795, 'PROVA', 'PROVA', 1977-01-25, 'PROVA', '0','0','0','','','','',null,'','',null,'','','')

    INSERT INTO tabella VALUES (193795, 'PROVA', 'PROVA', 25-jan-1977, 'PROVA', '0','0','0','','','','',null,'','',null,'','','')

    Ma il risultato è sempre lo stesso.
    Qual'è la sintassi corretta in Oracle per inserire un valore in un capo DATE?

    Grazie mille.

  2. #2

    Re: [oracle] Insert Date

    Ciao,
    premetto che non ho mai usato oracle, sono andato alla guida database oracle di questo sito ed ho trovato cosa dice del tipo Date di default. Eccolo il testo:
    Oracle fornisce svariate e utilissime funzioni per operare e trasformare questo tipo di dati. Il default di memorizzazione è GG-MES-AA ovvero due cifre per il giorno, tre lettere per il mese e due cifre per l'anno. La data 31-dic-75 ne è un esempio.
    ...quindi la tua INSERT giusta è:
    Codice PHP:
    INSERT INTO tabella VALUES (193795'PROVA''PROVA'25-jan-77'PROVA''0','0','0','','','','',null,'','',null,'','',''); 
    2 CIFRE per il giorno,
    3 LETTERE per il mese,
    2 CIFRE per l'anno.

    Fammi sapere se ti funziona?
    Ciao

  3. #3

  4. #4

    Re: Re: [oracle] Insert Date

    Originariamente inviato da coocooche
    Ciao,
    premetto che non ho mai usato oracle, sono andato alla guida database oracle di questo sito ed ho trovato cosa dice del tipo Date di default. Eccolo il testo:
    Oracle fornisce svariate e utilissime funzioni per operare e trasformare questo tipo di dati. Il default di memorizzazione è GG-MES-AA ovvero due cifre per il giorno, tre lettere per il mese e due cifre per l'anno. La data 31-dic-75 ne è un esempio.
    ...quindi la tua INSERT giusta è:
    Codice PHP:
    INSERT INTO tabella VALUES (193795'PROVA''PROVA'25-jan-77'PROVA''0','0','0','','','','',null,'','',null,'','',''); 
    2 CIFRE per il giorno,
    3 LETTERE per il mese,
    2 CIFRE per l'anno.

    Fammi sapere se ti funziona?
    Ciao
    Provato ma non funziona:
    ORA-00984: column not allowed here

    Anche il metodo descritto nel link non funziona:
    codice:
    INSERT INTO tabella VALUES (193795, 'PROVA', 'PROVA', to-date('25/01/1977','dd/mm/yyyy'), 'PROVA', '0','0','0','','','','',null,'','',null,'','','');
    Mi restituisce il seguente errore:
    ORA-00936: missing expression

    Purtroppo in SQL sono una frana e ancor meno ne capisco di oracle!

    Grazie mille.

  5. #5
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    La funzione è to_date, non to-date.

  6. #6
    Originariamente inviato da nicola75ss
    La funzione è to_date, non to-date.
    NOOOOO!!!!
    Sono stato così stupido!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Grazie mille e ciao.

  7. #7
    cmq adesso l'errore non è nell inserimento della data ma bensi in un altro campo (credo).
    ORA-00984: column not allowed here

    Vedi qui

    Cmq vedi bene tutti i tipi dei campi nell inserimento. Se non risolvi, posta un DESCRIBE della tabella e la vediamo insieme.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.