per favore fatemelo sapere la questione con seguente query SQL
Domanda
SELECT pd_end_dt,nrx_cnt
FROM wkly_lnd.lnd_wkly_plan_rx_summary
WHERE pd_end_dt >TO_DATE('01/01/2009')
Si sta dando errore ORA-01843: non un mese valido
Ho eseguito il seguente ha fatto bene
SELEZIONARE pd_end_dt, nrx_cnt DA wkly_lnd.lnd_wkly_plan_rx_summary DOVE pd_end_dt> '01 -Jan-09'
ma se voglio avere settimana saggio di dati come fare dat
Nessuna soluzione corretta
Altri suggerimenti
Non stanno dando una stringa di formato per TO_DATE . Ciò potrebbe causare Oracle per gestire la data sbagliata. Prova
to_date('01/01/2009', 'DD/MM/YYYY')
invece (a seconda di dove sei, si potrebbe desiderare di cambiare l'ordine delle DD e MM). Vedere questa descrizione del formato TO_DATE stringa di argomento per i dettagli.
try
TO_DATE('01/01/2009', 'dd/mm/yyyy')
Ok per non sembrare duro, ma fare una ricerca su google prima. Le risposte precedenti lavori, ma per una spiegazione più comlete vedere
http://www.dbmotive.com/oracle_error_codes.php?errcode=01843
Se avete intenzione di utilizzare il formato predefinito, come si sta facendo, allora si dovrebbe capire di cosa si tratta prima
Ci sono due possibilità:
-
La funzione TO_DATE sta venendo a mancare a causa del formato data di default (come da altre risposte qui già dato).
-
Il
pd_end_dt
colonna non è una colonna di data. La query sta cercando di convertire i valori inpd_end_dt
alle date precedenti al confronto, e non riuscendo in una delle righe.
Per dimostrare:
SQL> create table t1 (datestrings varchar2(10));
SQL> insert into t1 values ('01/01/2009');
SQL> insert into t1 values ('02/01/2009');
SQL> insert into t1 values ('01/XX/2009');
SQL> select * from t1 where datestrings > '01/01/2009';
DATESTRINGS
-----------
02/01/2009
01/XX/2009
2 rows selected
SQL> select * from t1 where datestrings > TO_DATE('01/01/2009');
ORA-01843: not a valid month
SQL> select * from t1 where datestrings > TO_DATE('01/01/2009','DD/MM/YYY');
ORA-01843: not a valid month