Unable to compare date "ORA-01843: not a valid month"

Hello All,
I am trying to fire below query but it is failing with error. Please suggest.
SELECT column_name FROM table_name WHERE start_time < '01/01/2011 00:00:00 AM';
ORA-01843: not a valid month
In table the start_time is stored in 2/16/2013 8:31:01 PM format.
Regards,
Ankit
Edited by: 982193 on Mar 11, 2013 6:32 AM

Hi, Ankit,
982193 wrote:
Hello All,
I am trying to fire below query but it is failing with error. Please suggest.Whenever you have a problem, please post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) from all tables involved, so that the people who want to help you can re-create the problem and test their ideas.
Also post the results you want from that data, and an explanation of how you get those results from that data, with specific examples.
Always say which version of Oracle you're using (for example, 11.2.0.2.0).
See the forum FAQ {message:id=9360002}
SELECT column_name FROM table_name WHERE start_time < '01/01/2011 00:00:00 AM';Use \ tags, as explained in the forum FAQ, so that this site won't garble your messages so much.
ORA-01843: not a valid month
In table the start_time is stored in 2/16/2013 8:31:01 PM format. If start_time is a DATE (or a TIMESTAMP) then it is not stored in that format, or any other format you would recognize.  Regardless of what the format is, don't try to compare a DATE with a VARCHAR2, such as '01/01/2011 00:00:00 AM'.  Use TO_DATE to convert the VARCHAR2 to a DATE.  For exampleWHERE start_time < TO_DATE ( '01/01/2011 12:00:00 AM'
               , 'MM/DD/YYYY HH:MI:SS AM'
If you're using AM in a time, then 0 is not a possible hour.  The hours are 12, 1, 2, ..., 11 when using AM or PM.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Similar Messages

  • ORA-01843: not a valid month, external table select fails on date column

    Hi,
    I created an external table as follows:
    CREATE OR REPLACE DIRECTORY sales_feeds AS '/backup/oracle/feeds';
    Directory created.
    CREATE TABLE salesfeed_external_table
              PROD_ID               NUMBER
            , CUST_ID               NUMBER
            , TIME_ID               DATE
            , CHANNEL_ID            NUMBER
            , PROMO_ID              NUMBER
            , QUANTITY_SOLD         NUMBER(10,2)
            , AMOUNT_SOLD           NUMBER(10,2)
    ORGANIZATION EXTERNAL
            TYPE ORACLE_LOADER
            DEFAULT DIRECTORY sales_feeds
            ACCESS PARAMETERS
                    RECORDS DELIMITED BY newline
                    FIELDS TERMINATED BY ','
            LOCATION ('salesfeed.dat')
    REJECT LIMIT 0
    Table created.I then create that external flat file salesfeed.dat as folows
    set echo off
    set feedback off
    set linesize 100
    set pagesize 0
    set head off
    set sqlprompt ''
    set trimspool on
    spool on
    spool /backup/oracle/feeds/salesfeed.dat
    select PROD_ID||','||CUST_ID||','||TIME_ID||','||CHANNEL_ID||','||PROMO_ID||','||QUANTITY_SOLD||','||AMOUNT_SOLD
    FROM salesfeed where rownum = 1;
    spool off
    exit
    cat salesfeed.dat
    18,3131,21/03/1998 00:00:00,3,999,1,2600.76Note only one row at the moment (diagonising)
    Try to read it
    select * from salesfeed_external_table
    ERROR at line 1:
    ORA-29913: error in executing ODCIEXTTABLEFETCH callout
    ORA-30653: reject limit reachedThe log shows:
    cat SALESFEED_EXTERNAL_TABLE_1302.log
    LOG file opened at 11/24/11 12:16:02
    Field Definitions for table SALESFEED_EXTERNAL_TABLE
      Record format DELIMITED BY NEWLINE
      Data in file has same endianness as the platform
      Rows with all null fields are accepted
      Fields in Data Source:
        PROD_ID                         CHAR (255)
          Terminated by ","
          Trim whitespace same as SQL Loader
        CUST_ID                         CHAR (255)
          Terminated by ","
          Trim whitespace same as SQL Loader
        TIME_ID                         CHAR (255)
          Terminated by ","
          Trim whitespace same as SQL Loader
        CHANNEL_ID                      CHAR (255)
          Terminated by ","
          Trim whitespace same as SQL Loader
        PROMO_ID                        CHAR (255)
          Terminated by ","
          Trim whitespace same as SQL Loader
        QUANTITY_SOLD                   CHAR (255)
          Terminated by ","
          Trim whitespace same as SQL Loader
        AMOUNT_SOLD                     CHAR (255)
          Terminated by ","
          Trim whitespace same as SQL Loader
    error processing column TIME_ID in row 1 for datafile /backup/oracle/feeds/salesfeed.dat
    ORA-01843: not a valid monthI checked my nls date format etc:
    select * from nls_session_parameters;
    PARAMETER                      VALUE
    NLS_LANGUAGE                   ENGLISH
    NLS_TERRITORY                  UNITED KINGDOM
    NLS_CURRENCY                   £
    NLS_ISO_CURRENCY               UNITED KINGDOM
    NLS_NUMERIC_CHARACTERS         .,
    NLS_CALENDAR                   GREGORIAN
    NLS_DATE_FORMAT                DD/MM/YYYY HH24:MI:SS
    NLS_DATE_LANGUAGE              ENGLISH
    NLS_SORT                       BINARY
    NLS_TIME_FORMAT                HH24.MI.SSXFF
    NLS_TIMESTAMP_FORMAT           DD-MON-RR HH24.MI.SSXFF
    NLS_TIME_TZ_FORMAT             HH24.MI.SSXFF TZR
    NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH24.MI.SSXFF TZR
    NLS_DUAL_CURRENCY              ¤
    NLS_COMP                       BINARY
    NLS_LENGTH_SEMANTICS           BYTE
    NLS_NCHAR_CONV_EXCP            FALSEAny ideas?
    Thanks,
    Mich
    Edited by: Mich Talebzadeh on 24-Nov-2011 04:19

    Thanks
    The following now works
    CREATE TABLE salesfeed_external_table
              PROD_ID               NUMBER
            , CUST_ID               NUMBER
            , TIME_ID               DATE
            , CHANNEL_ID            NUMBER
            , PROMO_ID              NUMBER
            , QUANTITY_SOLD         NUMBER(10,2)
            , AMOUNT_SOLD           NUMBER(10,2)
    ORGANIZATION EXTERNAL
            TYPE ORACLE_LOADER
            DEFAULT DIRECTORY sales_feeds
            ACCESS PARAMETERS
                    RECORDS DELIMITED BY newline
                    FIELDS TERMINATED BY ','
                    MISSING FIELD VALUES ARE NULL
                    (         PROD_ID
                            , CUST_ID
                            , TIME_ID DATE  'dd/mm/yyyy HH24:MI:SS'
                            , CHANNEL_ID
                            , PROMO_ID
                            , QUANTITY_SOLD
                            , AMOUNT_SOLD
            LOCATION ('salesfeed.dat')
    REJECT LIMIT 0
    select * from salesfeed_external_table;
       PROD_ID    CUST_ID TIME_ID             CHANNEL_ID   PROMO_ID QUANTITY_SOLD AMOUNT_SOLD
            18       3131 21/03/1998 00:00:00          3        999             1     2600.76Regards,
    Mich

  • Date error ORA-01843: not a valid month

    Hi,
    I am in a 4.01 Apex environment with NLS_DATE_FORMAT     mm/dd/yyyy. I created a view with a CASE statements using 'when eventstartdate between '08/15/2010' and '06/1/2011' then...' clauses and the view is created fine. I also can query the view with no problem with SQL workshop and the CASE statements work as expected. When I create an interactive report on that view I keep getting ORA-01843: not a valid month. I even tried matching the format in the Interactive Report column format mask to the NLS format for the date and still get error.
    What seems especially strange to me is that even if I have the view column defined with a 'to_char' I still get the same error when I use the CASE statement to build the view. Doesn't the Interactive Report just 'see' the View column definitions-- why should it 'care' how the view was built?
    The only way I can get the View to work with an Interactive report in any manner is to remove all the CASE statements and define the 'eventstartdate' as text using to_char but that then eliminates my ability to do any filters that require date comparisons with between or '>', '<'.
    Help would be appreciated!
    Thanks,
    Pat

    Quick late night response - always convert your dates for comparison. Apples to apples
    Instead of between '01/31/2012', use either
    TO_DATE('01/31/2012', 'MM/DD/YYYY')or
    DATE '2012-01-31'More related info
    http://www.grassroots-oracle.com/2011/03/date-format-tolerance.html
    Sorry if I'm off target, thought it may help

  • [PL/SQL Error] ORA-01843: not a valid month, not sure how to troubleshoot

    Trying to use PL/SQL to automatically create a report that show the following:
    Daily:      
    # of Registered Users      
    # of Completes (assessment)      Average per User
    # of Starts (assessment)      Average per User
    Weekly:      
    # of Registered Users      
    # of Completes (assessment)      Average per User
    # of Starts (assessment)      Average per User
    Yearly:      
    # of Registered Users      
    # of Completes (assessment)      Average per User
    # of Starts (assessment)      Average per User
    When I run the PL/SQL I get the following
    [error]
    ORA-01843: not a valid month
    [error]
    The error occurs on this part of the PL/SQL
    --registered users weekly starts
    select count(*), trunc(next_day(sysdate-29, 'SUNDAY')-7), trunc(sysdate-29)
         into v_weekly_count_total_ru, v_weekly_start_date, v_weekly_end_date
              from entities
                   where list_id = 3290
                   and participation_code_id = 10
                   and trunc(participation_date)
                   between trunc(next_day(sysdate-29, 'SUNDAY')-7) and                         
                            trunc(sysdate-29);I'm using the number 29 because I'm using a test database to test this first before moving it into production. And my test data only goes back to early August 2006.
    Also, I'm not doing anything with months, so I am suprised that it is throwing this type of error.
    thanks

    I tested a snippet of code in my production environment, just to see if I would get any results:
    --registered users weekly starts
    select count(*), trunc(next_day(sysdate-1, 'SUNDAY')-7), trunc(sysdate-1)
         --into v_weekly_count_total_ru, v_weekly_start_date, v_weekly_end_date
              from entities
                   where list_id = 3290
                   and participation_code_id = 10
                   and trunc(participation_date)
                   between trunc(next_day(sysdate-1, 'SUNDAY')-7) and trunc(sysdate-1);
    COUNT(*)     TRUNC(NEXT_DAY(SYSDATE-1,'SUND     TRUNC(SYSDATE-1)--INTOV_WEEKLY
    1     09/10/2006 00:00:00     09/11/2006 00:00:00I did a double check in my test DB to make sure there is data there:
    select count(*)
         from entities
              where trunc(participation_date)
              between to_date('01-08-2006','DD-MM-YYYY')
              and to_date('14-08-2006','DD-MM-YYYY')
              and list_id = 3290;
    COUNT(*)
    11So I'm pretty sure that I'm not pulling anything null.
    thanks

  • Oracle error "ORA-01843: not a valid month" when trying to run sqlldr

    Hi all,
    I'm trying to load some data into a staging database via a CSV file using sqlldr, and am running into an issue where it doesn't like the date format I'm using.
    Here is my input data:
    2012-01-09 16:28:12 -05:00Here is the entry in the .ctl file:
    created TIMESTAMP WITH TIME ZONE 'yyyy-mm-dd HH24:MI:SS TZR'And finally, here is the entry in the .sql file:
    created TIMESTAMP WITH TIME ZONEAfter I try to load, I get greeted with the dreaded error message: Record 1: Rejected - Error on table WTPART, column CREATED. ORA-01843: not a valid month
    I'm really confused as to why it's blowing up on the date, because it seems to me that "01" is indeed a valid date in terms of the date format I'm using. Any ideas? Thanks!
    Edited by: Nick Tiberi on Jan 10, 2012 8:06 AM

    Hmmm, not sure exactly what the problem is. It works fine for me on my XE instance.
    Set up the control and data files....
    tubby@Tubbz:~/test$ cat >> WTPart.csv <<EOF
    2012-01-09 16:28:12 -05:00
    EOF
    tubby@Tubbz:~/test$
    tubby@Tubbz:~/test$ cat >> load.ctl <<EOF
    LOAD DATA
    INFILE WTPart.csv
    APPEND INTO TABLE WTPart
    FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"'
    TRAILING NULLCOLS
    created TIMESTAMP WITH TIME ZONE 'yyyy-mm-dd HH24:MI:SS TZR'
    EOF
    tubby@Tubbz:~/test$
    tubby@Tubbz:~/test$ /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/sqlldr tubby/pswd@xe control=load.ctl
    SQL*Loader: Release 10.2.0.1.0 - Production on Tue Jan 10 10:21:28 2012
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Commit point reached - logical record count 1
    tubby@Tubbz:~/test$
    {code}
    Query the result from the database
    {code}
    ME_XE?select * from wtpart;
    CREATED
    09-JAN-12 04.28.12.000000 PM -05:00
    1 row selected.
    Elapsed: 00:00:00.01
    ME_XE?
    ME_XE?select * from v$version;
    BANNER
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
    PL/SQL Release 10.2.0.1.0 - Production
    CORE    10.2.0.1.0      Production
    TNS for Linux: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    5 rows selected.
    Elapsed: 00:00:00.01
    ME_XE?
    {code}
    Are you sure your CSV file doesn't have some "funky" data in it?                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • ORA-01843: not a valid month

    Hi
    I get the following error message intermittently.
    ===> ORA-01843: not a valid month
    The problem is only intermittent! Which makes this more difficult to solve !
    Ideas please ?
    The piece of problematic ProC code is given below -
    ===
    if(nForUpdate)
    EXEC SQL SELECT * into :dbtbl:dbind FROM MYTABLE
    WHERE my_time = :dbtbl.my_time
    AND myf_id = :dbtbl.myf_id
    AND myl_id = :dbtbl.myl_id
    AND myw_id = :dbtbl.myw_id
    FOR UPDATE;
    else
    EXEC SQL SELECT * into :dbtbl:dbind FROM MYTABLE
    WHERE my_time = :dbtbl.my_time
    AND myf_id = :dbtbl.myf_id
    AND myl_id = :dbtbl.myl_id
    AND myw_id = :dbtbl.myw_id;
    Raja

    So what kind of error handling to you have in place to log the error messages and related diagnostic information?
    This error usually happens when we have a character variable holding dates as strings, with the inevitable corruption of invalid dates being amongst those strings.
    If you say it isn't data in the table and the input parameter :dbtbl.my_time always contains a date, then the only possible explanation is that Red Lectroids are corrupting your database with their alien 8th Dimension calendar....
    Cheers, APC

  • The database error text is: ORA-01843: not a valid month

    I am trying to use a date field as a query filter and I keep getting the
    following error:
    A database error occurred. The database error text is: ORA-01843: not a
    valid month. (WIS 10901).
    When I remove the query filter and run the query it works as
    expected. I want to be able to allow the users to use the date field in order
    to select a date range. Can someone provide me with some information on how to
    resolve this issue.

    SQL> SELECT (to_char(tO_date('09/29/2006', 'mm/dd/yyyy'))||':'||TO_CHAR(systimestamp,'hh24:mi:ss:ff6'))
      2  FROM dual;
    (TO_CHAR(TO_DATE('09/29/2006
    29-SEP-06:01:33:09:023000
    But you want mm/dd/yyyy hh24:mi:ss:ff6 format then use TO_CHAR function for format specifier
    SQL> SELECT to_char(to_timestamp((to_char(tO_date('09/29/2006', 'mm/dd/yyyy'))||':'||TO_CHAR(systimestamp,'hh24:mi:ss:ff6')), 'dd/mm/yyyy hh24:mi:ss:ff6'),'mm/dd/yyyy hh24:mi:ss:ff6')
      2  FROM DUAL
      3  /
    TO_CHAR(TO_TIMESTAMP((TO_CHAR
    09/29/0006 01:40:27:113000
    SQL> Khurram

  • ERROR java.sql.SQLException: ORA-01843: not a valid month

    This page is working fine for English Language. Once we change preference Lanuage to "French Candian" We are getting this issue.
    This is little urgent on this.
    ERROR
    oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: select
    ppf.person_id,
    ppf.employee_number,
    god.organization_id,
    ppf.full_name employee_name,
    (select full_name from per_people_x where person_id = paf.supervisor_ID ) manager_name,
    (select full_name from per_people_x where person_id = haou.attribute4 ) hr_name,
    --hr_general.decode_person_name(haou.attribute4 ) hr_name,
    haou.name organization_name,
    GEM.termination_date actual_termination_date,
    (select meaning from hr_lookups where lookup_type = 'LEAV_REAS' and lookup_code = GEM.Leaving_reason and enabled_flag = 'Y') leaving_reason,
    god.sub_business sub_business,
    god.business_segment business_segment,
    god.industry_focus_group industry_focus_group,
    pgd.segment2 corporate_Band,
    tl.territory_short_name country
    from per_people_f ppf,
    per_assignments_f paf,
    hr_all_organization_units haou,
    per_grades pg,
    per_grade_definitions pgd,
    per_addresses pa,
    fnd_territories_tl tl,
    XXsm_org_dtl god,
    XX_EXIT_TRANSACTION GET,
    XX_EXIT_MANAGER GEM
    where 1=1
    and paf.person_id=:1
    and paf.primary_flag='Y'
    and ppf.person_id = paf.person_id
    and paf.organization_id=haou.organization_id
    and paf.organization_id = god.organization_id
    and trunc(sysdate) between trunc(paf.effective_start_date) and trunc(paf.effective_end_date)
    and trunc(sysdate) between trunc(ppf.effective_start_date) and trunc(ppf.effective_end_date)
    and ppf.person_id=GET.employee_id(+)
    and GET.Transaction_id = GEM.transaction_id
    and paf.grade_id=pg.grade_id(+)
    and pg.grade_definition_id=pgd.grade_definition_id(+)
    and ppf.person_id=pa.person_id(+)
    and pa.primary_flag(+)='Y'
    and pa.country=tl.territory_code(+)
    AND tl.language = USERENV('LANG')
    AND trunc(sysdate) between trunc(pa.Date_from) and trunc(nvl(pa.Date_to, TO_DATE ('31-DEC-4712', 'DD-MON-YYYY')))
         at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:891)
         at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:865)
         at oracle.apps.fnd.framework.OAException.wrapperInvocationTargetException(OAException.java:988)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:211)
         at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:153)
         at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:750)
         at ge.oracle.apps.per.selfservice.eexit.employee.webui.GEExitEmployeeCO.processRequest(GEExitEmployeeCO.java:112)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
         at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2348)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1747)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
         at oa_html._OA._jspService(_OA.java:84)
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
         at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
         at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
         at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
         at oracle.jsp.JspServlet.service(JspServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
         at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
         at org.apache.jserv.JServConnection.run(JServConnection.java:294)
         at java.lang.Thread.run(Thread.java:619)
    ## Detail 0 ##
    java.sql.SQLException: ORA-01843: not a valid month
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
         at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
         at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
         at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
         at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2566)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2963)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:658)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:584)
         at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
         at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
         at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
         at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
         at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4507)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
         at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
         at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
         at oracle.jbo.server.ViewObjectImpl

    Are you hard coding anything in code or VO ?
    AND trunc(sysdate) between trunc(pa.Date_from) and trunc(nvl(pa.Date_to, TO_DATE ('31-DEC-4712', 'DD-MON-YYYY')))Try some modification in the above nvl code and test.
    And refer:
    http://apps2fusion.com/apps/apps/430-string-to-date
    -Anand

  • ORA-01843: not a valid month . Receive this error when running report in reporting services but not when running query in BIDS

    sql server 2008 r2
    RS2008 r2
    I can execute the query in BIDS 2008 with out a problem and I can run on our RS2005 server without a problem
    But when I deploy report and run on our RS2008 server I get the error
    An error has occurred during report processing. (rsProcessingAborted)
    Query execution failed for dataset 'NIR'. (rsErrorExecutingCommand)
    ORA-01843: not a valid month 
    QUERY:
    select * from NIR_QUARTERLY where birth_date between :PARAM1 and :PARAM2
    order by PT_CODE

    CAUSE
    The problem is caused by not using VALID dates values in the dataset.
    - This data problem was masked in the original version as the Predicate(s) used can change between versions of Oracle
    - Oracle does *not* guarantee the same explain plan or the specific order of predicates used between versions of Oracle
    Reviewing the  EXPLAIN PLAN for both versions revealed in this case:
    1) The table was partitioned
    2) The EXPLAIN PLANS were not the same due to how the partitions were accessed
    3) If the same query was used against a non-partitioned table using the same data, the following error would always occur
       ORA-01843: not a valid month
    4) The problem string value was in this case found to include the string value of  '0000-00-00'
      The ORA-01843 occurred when using the TO_DATE function against '0000-00-00'
    There is *no* Year= '0000' Month= '00' or day = '00' -- therefore the  ORA-01843: not a valid month
    --Prashanth

  • Getting Ora 01843  not a Valid month Error

    Hi
    I was trying to assign the data in MM/DD/YY format
    from a date value '09/25/2009'..
    I cannot Obain the result i always get this
    ORA-01843: not a valid month
    May i ask you kindly to help me out here.
    Below is the code Snippet;
    DECLARE
    lv_date DATE;
    BEGIN
    lv_date := '09/25/2009';
    BEGIN
    lv_date:= TO_DATE(lv_date,'MM/DD/YY');
    lv_date:= TO_CHAR(lv_date,'MM/DD/YY');
    -- I slso tried this way but same error.
    -- lv_date := TO_CHAR(TO_DATE(lv_date,'MM/DD/YYYY'),'MM/DD/YY');
    END;
    DBMS_OUTPUT.PUT_LINE('the date format is = '|| lv_date);
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE ('Err from MainBlock '|| SQLCODE || SQLERRM);
    END;

    Hi,
    1)
    lv_date := '09/25/2009';lv_date is a variable of datatype date, but you are assigning a varchar, which Oracle is not able to do implicit conversion because of nls_date_format
    change to something like to_date('09/25/2009','mm/dd/yyyy')
    2)
    lv_date:= TO_DATE(lv_date,'MM/DD/YY');
    lv_date:= TO_CHAR(lv_date,'MM/DD/YY');Why would be assinging a char value to date datatype. Use any one depending on datatype of lv_date
    Regards
    Anurag Tibrewal.

  • SQL execution error, ORA-01843: not a valid month

    Im using ASP/VBScript and its my first time starting to use Oracle as a DB provider.
    Just having an issue with a statement that I have.
    Heres my statement:
    SELECT T592_NOON.SHIP_CODE, T592_NOON.REPORT_DATE, T592_NOON.L_B, T592_NOON.AVERAGE_SPEED, T592_NOON.SEASTATE, T592_NOON.DISTANCE, T592_NOON.WIND_DIRECTION, T592_NOON.IFO_MAIN, T592_NOON.IFO_BOILER, T592_NOON.IFO_AUXENGINE FROM T592_NOON WHERE (((SHIP_CODE)='S271') AND (REPORT_DATE BETWEEN to_date('08/02/2004 13:00:00', 'DD-MON-YYYY HH24:MI') and to_date('28/02/2004 18:15:00', 'DD-MON-YYYY HH24:MI')))
    Whenever I run it it errors and returns:
    SQL execution error, ORA-01843: not a valid month
    Can anyone tell why this wouldnt work?
    REPORT_DATE type is DATE
    REPORT_DATE Sample data: 2003-04-28-12.00.00.000000

    Changing the format of the date seemed to fix it.
    Incorrect: '08/02/2004 13:00:00'
    Correct: '08-FEB-2004 13:00'

  • ORA-01843 Not a valid month Error

    Dear all,
    We did a database upgrade from 9.2.0.1 to 11gR2 and after that everything is working fine.
    But now we noticed that the users are getting ORA-01843 Not a valid month Error.
    I changed the NLS_DATE_FORMAT in the init.ora file, but still the error persist.
    As a work around I changed the NLS_DATE_FORMAT=DD-MM-YYYY on the client pc registry and now its working in that pc..
    Is there any other way so that the change gets affected globally ??
    Any tips
    Thanks in adv,
    Mahesh

    mahesh wrote:
    Dear all,
    We did a database upgrade from 9.2.0.1 to 11gR2 and after that everything is working fine.
    But now we noticed that the users are getting ORA-01843 Not a valid month Error.
    I changed the NLS_DATE_FORMAT in the init.ora file, but still the error persist.
    As a work around I changed the NLS_DATE_FORMAT=DD-MM-YYYY on the client pc registry and now its working in that pc..
    Is there any other way so that the change gets affected globally ??
    Any tips
    Thanks in adv,
    MaheshNLS_DATE_FORMAT can be set in multiple places, but it's not an either/or situation. Setting it in an init parm at the db level is the WEAKEST setting. That setting is overridden by the client OS, which in turn can be overridden by an ALTER SESSION, which in turn can be overridden by use of TO_CHAR and TO_DATE at the individual sql statement. and if the date is being entered by a human at a keyboard (actually keyed in, not picked from a calendar tool or some sort of drop-down pick list) you really have no direct control over the format of the string they key in. So ultimately it is up to the application to insure that character strings presented as dates are in the correct format.
    Which is why I advise developers to ALWAYS use to_char and to_date at the sql statement level. It is the only way they can insure control over the setting.

  • ORA-01843: not a valid month in sql loader

    Hi. I am trying to insert time data into date column type and getting this one message ORA-01843: not a valid month.
    My ctl configuration as follow:
    TIME1 "TO_DATE(SUBSTR(:TIME1,1,19),'yyyy-mm-dd hh24:mi:ss')",
    Data nature as follow:
    19:43:52.0000000
    Any help.
    Regards
    Irfan

    19:43:52.0000000 doesn't match the format picture yyyy-mm-dd hh24:mi:ss
    perhaps you meant to use something like hh24:mi:ss and substr(:time, 1, 8)

  • Getting ORA-01843 not a valid month on '12/15/2001'

    i'm simply trying to enter data into data which has date columns.
    table
    col1 varchar
    col2 varchar
    col3 date
    insert into table
    (col1,col2,col3)
    values
    ('1','2', '12/14/2001')
    but i receive an error ora-01843, not a valid month, on the statement, but if i substitute the date string with sysdate all works fine.
    what am i missing?

    Always use TO_DATE for dates.
    So instead of '12/14/2001', you should use TO_DATE('12/14/2001', 'MM/DD/YYYY')

  • XMLTable default values for timestamp results in ORA-01843: not a valid month

    When I try to provide a default for a timestamp value in the XMLTABLE function, I am greeted with an error - ORA-01843: not a valid month - no matter how I provide that default value. Whether there is a value present in the XML or not is irrelavant for this bug to occur. It appears to be an incomplete fix of bug number 9745897 (thread).
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC><DT>2013-08-14T15:08:31</DT></DOC>')
      COLUMNS dt timestamp default sysdate) x;
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC><DT>2013-08-14T15:08:31</DT></DOC>')
      COLUMNS dt timestamp default systimestamp) x;
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC><DT>2013-08-14T15:08:31</DT></DOC>')
      COLUMNS dt timestamp default to_char(systimestamp, 'YYYY-MM-DD"T"HH24:MI:SS') ) x;
    Edit: A little more followup.
    This works:
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC></DOC>')
      COLUMNS dt date default sysdate) x;
    This also works, except for its just the date, and not the date/time
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC></DOC>')
      COLUMNS dt timestamp default sysdate) x;
    This doesn't work
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC></DOC>')
      COLUMNS dt timestamp default systimestamp) x;
    ORA-01861: literal does not match format string

    Hi,
    First of all, let's check the manual for the DEFAULT clause :
    XMLTABLE SQL/XML Function in Oracle XML DB
    The optional DEFAULT clause specifies the value to use when the PATH expression results in an empty sequence (or NULL). Its expr is an XQuery expression that is evaluated to produce the default value.
    According to the documentation, the DEFAULT clause should specify an XQuery expression.
    However, that is wrong, the actual implementation only expects an expression that resolves to a string, the content is not interpreted.
    So, bottom line is if we don't directly specify a string, the expression will be implicitly converted to one, and we all know how bad things can go when implicit conversions occur, especially when dates or timestamps are involved.
    Now let's focus on how the DEFAULT clause affects the query evaluation.
    When a DEFAULT clause is specified, Oracle rewrites the projection differently and do not use the native xs:dateTime format to convert the value  :
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC><DT>2013-08-14T15:08:31</DT></DOC>')
      COLUMNS dt timestamp default systimestamp
      ) x
    becomes :
    SELECT CASE EXISTSNODE(VALUE(KOKBF$),'/DOC/DT')
             WHEN 1 THEN CAST(TO_TIMESTAMP(SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(SYS_XQEXTRACT(VALUE(KOKBF$),'/DOC/DT')),50,1,2)) AS timestamp )
             ELSE CAST(TO_TIMESTAMP(TO_CHAR(SYSTIMESTAMP(6)),'SYYYY-MM-DD"T"HH24:MI:SSXFF') AS timestamp )
           END  "DT"
    FROM TABLE("SYS"."XQSEQUENCE"(EXTRACT("SYS"."XMLTYPE"('<DOC><DT>2013-08-14T15:08:31</DT></DOC>'),'/DOC'))) "KOKBF$"
    See the red part : it doesn't use the format parameter, so the conversion relies on the session's NLS settings.
    When there's no DEFAULT clause, the TO_TIMESTAMP function uses an explicit format :
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC><DT>2013-08-14T15:08:31</DT></DOC>')
      COLUMNS dt timestamp --default systimestamp
      ) x
    rewritten to :
    SELECT CAST(
             TO_TIMESTAMP(
               SYS_XQ_UPKXML2SQL(SYS_XQEXVAL(SYS_XQEXTRACT(VALUE(KOKBF$),'/DOC/DT'),0,0,20971520,0),50,1,2)
             , 'SYYYY-MM-DD"T"HH24:MI:SSXFF'
             AS timestamp --default systimestamp
           ) "DT"
    FROM TABLE("SYS"."XQSEQUENCE"(EXTRACT("SYS"."XMLTYPE"('<DOC><DT>2013-08-14T15:08:31</DT></DOC>'),'/DOC'))) "KOKBF$"
    so yes, maybe there's a bug here.
    Edit: A little more followup.
    This works:
    select x.*
    from
    xmltable('/DOC' passing xmltype('<DOC></DOC>')
      COLUMNS dt date default sysdate) x;
    Actually no, it doesn't work. Granted, maybe it doesn't produce any error, but the result is incorrect.
    As explained, the conversion relies on the session NLS (NLS_DATE_FORMAT in this case) :
    SQL> show parameters nls_date_format
    NAME                                 TYPE        VALUE
    nls_date_format                      string      DD/MM/RR
    SQL>
    SQL> select sysdate from dual;
    SYSDATE
    16/08/13
    SQL> select x.*
      2  from
      3  xmltable('/DOC' passing xmltype('<DOC></DOC>')
      4    COLUMNS dt date default sysdate) x;
    DT
    13/08/16
    Oracle first converts SYSDATE to a string using current NLS_DATE_FORMAT, resulting in '16/08/13'
    Then this string is converted to a DATE using the xs:date format 'YYYY-MM-DD' resulting in 13/08/0016 (August 13, 0016) which is incorrect.
    The obvious workaround to this issue is to control how Oracle implicitly converts from string to date/timestamp format :
    SQL> alter session set NLS_TIMESTAMP_FORMAT= 'YYYY-MM-DD"T"HH24:MI:SS';
    Session altered.
    SQL> select x.*
      2  from
      3  xmltable('/DOC' passing xmltype('<DOC><DT>2013-08-14T15:08:31</DT></DOC>')
      4    COLUMNS dt timestamp default systimestamp
      5    ) x;
    DT
    2013-08-14T15:08:31
    SQL> select x.*
      2  from
      3  xmltable('/DOC' passing xmltype('<DOC></DOC>')
      4    COLUMNS dt timestamp default systimestamp) x;
      COLUMNS dt timestamp default systimestamp) x
    ERROR at line 4:
    ORA-01861: literal does not match format string
    SQL> select x.*
      2  from
      3  xmltable('/DOC' passing xmltype('<DOC></DOC>')
      4    COLUMNS dt timestamp default cast(systimestamp as timestamp)) x;
    DT
    2013-08-16T12:32:58

Maybe you are looking for

  • Oracle 9i Release 2 on SUSE 10

    Dear Sir, It is stated that i have installed SUSE LINUX ENTERPRISE SERVER 10 with SP1 with oracle check box checked during SUSE installation. Now i am trying to install Oracle 9i release 2 on that machine i have completed almost every prerequisit for

  • Problem with Port Range Forwarding WRV54G

    I have configured my WRV54G to do the following, in this order, on the Port Range Forwarding page of the router: 1. Forward port 3389 to LAN Static IP x.x.x.100, a desktop PC. I have confirmed this works, a port scan shows this port is open and I can

  • Data already exists for particular SID

    HI, I am executing a process chain for 0notification & is scheduled for 00:05hrs daily. It usually fails giving the error "Data already exists for SID <  >".However, when scheduled again it gets completed. This happens very often. Can nybody help me

  • How to check the configurations of a database.

    Hi There, I am asked to create a new database but it should be exactly configured as a database which exist allready.please help me how can i check the configuration of the exicting database. please help. Regards Navneet Kaur

  • Unable To Execute Query

    Hi All, Given below Query works fine when I am running for some set of item Select * from (SELECT cdp.NAME model_name, (SELECT NAME FROM cz_ps_nodes WHERE ps_node_id = cpn.devl_project_id AND deleted_flag = 0) modelroot, p_cim.ref_part_nbr parent_ref