MySQL Varchar not matching Java String

I am using MySQL 4.0.16 with jdk1.3.1_01 and I have a strange occurance going on with comparing Strings from the mysql database with Strings entered from java, coming from a JTextField. The mysql field in question was created like this:-
CREATE TABLE hardware (
serialnumber VARCHAR(20) UNIQUE NOT NULL,
.....The line in arrows on the proceeding code is where I am having problems. I changed the method from .getString() to getInt() to test the IF statement and matches were produced as expected but with getString(), no matches are made from this line even though 'System.out' shows the variable from mysql and the variable from java (a JTextField) are both the same at the point of the IF statement, (as tested by the line below the arrows.
rs = stmt.executeQuery("select count(*)from hardware;");
rs.next();for (int x=0;x < rowSize; x++) {
   rs.next();
  if (rs.getString(1) == newSerialNumber) {    // <<<<<<<<
          nonUniqueSerialNumber=true;
  System.out.println("loop on "+x+"rs.getString(1) is "+rs.getString(1)+" java textfield is "+newSerialNumber);
rs.close();
// If reached this stage - the Serial Number is OK.
int rowSize = rs.getInt(1);
rs = stmt.executeQuery(getAllSerialNumbers_QRY);Any known reasons or thoughts greatly appreciated? I've looked through the mysql manual with no mention of VARCHAR or CHAR incompatibilites. Also I am using the Connector/J 3.0.9 JDBC driver..
Pat Rivet

Nothing to do with the database, just a common newbie-to-Java error. Don't use == to compare the contents of two String objects, use the equals() method instead. Like this:if (rs.getString(1).equals(newSerialNumber))...

Similar Messages

  • Error: ORA-01861: literal does not match format string

    Hi,
    I am doing a RFC-XI-JDBC scenario.
    In the CC monitoring , i am getting this error for the reciver CC:
    "Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. "TableNAMe"(structure 'STATEMENTNAME'): java.sql.SQLException: ORA-01861: literal does not match format string "
    Please guide me what can be the cause and how to solve it.
    Thanks,
    Puneet

    This is how my payload looks like :
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:MT_JDBC_REC xmlns:ns1="https:namespace.scene3">
    <STATEMENTNAME>
    <TABLE_NAME action="INSERT">
    <TABLE>ggclgis</TABLE>
    <access>
    <VALVE_ID>12584</VALVE_ID>
    <EQUNR>122</EQUNR>
    <ERNAM>12122</ERNAM>
    <INVNR>1212</INVNR>
    <GROES>1212</GROES>
    <ELIEF>123</ELIEF>
    <GWLEN>21-jul-2008</GWLEN>
    <GWLDT>12-jun-2006</GWLDT>
    <SERGE>wqwqw</SERGE>
    <TYPBZ>wqwqwq</TYPBZ>
    </access>
    </TABLE_NAME>
    </STATEMENTNAME>
    </ns1:MT_JDBC_REC>
    Please tell me if it looks fine.

  • SQL LOADER and ORA-01861: literal does not match format string

    Hi,
    I've to load data through control_file(.ctl) into oracle table through sqlldr. Oracle 11g, win xp.
    as soon as I use - sqlldr dss/dss control=orders.ctl I get error or nothing.
    Text file that is generated after loading fails has the following error.
    Record 1: Rejected - Error on table ORDERS, column O_ORDERDATE.
    ORA-01861: literal does not match format string
    I have checked the format of data to be loaded into Orders table is like this : *1996-01-02.*
    I checked the format of data in my database by querying sysdate from dual i.e. 10-JAN-10
    I thought that changing its format might solve my problem so i tried this:
    SQL> alter session set nls_date_format='YYYY-MM-DD';
    Session altered.
    SQL> select sysdate from dual;
    SYSDATE
    2010-01-10but still i'm getting the same error. I've to load millions of data. how I can solve this issue.
    Please suggest.
    Thanks alot.
    Best Regads,
    Kam

    Hi,
    It's strange ....nobody knew it?. I think this type of load problem will be very common isn't it.... where date column data is in a different format than in the db i.e.
    How to change *1996-01-02* in the Control_file to make it able to load in the table where sysdate is like this: *11-JAN-10*
    Sample data to be loaded is :
    1|36901|O|173665.47|1996-01-02|5-LOW|Clerk#000000951|0|nstructions sleep furiously among |
    Desc Orders
    O_ORDERDATE NOT NULL DATEI have tested this by creating a test table and a test control file by omitting this O_ORDERDATE and then everything was fine, data was inserted but don't know how to load this DATE also.
    Also not able to understand about POSITION in the control file...?
    Regards,
    Kam

  • SQL Error: ORA-01861: literal does not match format string

    Hello,
    I'm trying to do data mining on a web log which recorded one day web access information from a busy web server. I imported the data into Oracle Data miner, and created a table (WEBLOG). The idea is to create a new field, i.e. session, for the users so that each session could be thought as a representative of a user-intent (aka topic). Now based on this, data mining models would be used to cluster(group) the users based on their similarity. The first step is to prepare the data which involves using SQL queries. So first, all I did was to create a function for date and time. This is the following code I used,
    create or replace function ssndate(p_date in varchar2 default '03-01-18',
    p_time in varchar2)
    return number
    $if dbms_db_version.ver_le_10 $then
    deterministic
    $elsif dbms_db_version.ver_le_11 $then
    result_cache
    $end
    as
    begin
    return trunc((to_date(p_date||' '||p_time, 'dd-mm-yy hh24:mi:ss')
    - to_date('01-01-90','dd-mm-yy')) * (86400/2400));
    end ssndate;
    The function ssndate compiled successfully.
    The next step I took was to create a view through the following query,
    create or replace view WEBLOG_VIEWS
    as
    select (select ssndate(LOG_DATE, LOG_TIME) from dual) as "SESSION_DT",
    C_IP,
    CS_USER_AGENT,
    (CS_URI_STEM||'?'||CS_URI_QUERY) as WEB_LINK
    from WEBLOG;
    This was successful as well. The problem is in the next step where I try to do data grouping.
    create table FINAL_WEBLOG as
    select SESSION_DT, C_IP, CS_USER_AGENT,
    listagg(WEB_LINK, ' ')
    within group(order by C_IP, CS_USER_AGENT) "WEB_LINKS"
    from WEBLOG_VIEWS
    group by C_IP, CS_USER_AGENT, SESSION_DT
    order by SESSION_DT
    For this, I got the error,
    Error starting at line 1 in command:
    create table FINAL_LOG as
    select SESSION_DT, C_IP, CS_USER_AGENT,
    listagg(WEB_LINK, ' ')
    within group(order by C_IP, CS_USER_AGENT) "WEB_LINKS"
    from WEBLOG_VIEWS
    group by C_IP, CS_USER_AGENT, SESSION_DT
    order by SESSION_DT
    Error at Command Line:1 Column:7
    Error report:
    SQL Error: ORA-01861: literal does not match format string
    ORA-06512: at "DMUSER.SSNDATE", line 11
    ORA-06512: at line 1
    01861. 00000 - "literal does not match format string"
    *Cause:    Literals in the input must be the same length as literals in
    the format string (with the exception of leading whitespace).
    If the "FX" modifier has been toggled on, the literal must
    match exactly, with no extra whitespace.
    *Action:   Correct the format string to match the literal.
    I don't know where I'm going wrong with this.. the to_date function should be fine. In the data that I possess, the date and time are in no format. Example: 30118 and 0:00:09 respectively. If anyone has any clue about this I would be sincerely grateful for any help that I can get!! It's quite urgent..
    The Oracle version is 11.2.0.1.0
    Edited by: 975265 on Dec 5, 2012 5:31 PM

    975265 wrote:
    Ok.. Looks like I touched a nerve there. I apologize. I'm still a student, and this is the first time that I've tried something at this level. I'm still in the learning process, so I was hoping that someone could point me in the right direction in order to "fix" the data.Not so much touching a nerve as simply trying to implement a very very poor, but all too common, practice. Since you are a student (which we didn't know until this post) most people will cut you some slack. However, this little exchange should now be burned into your brain as you move forward. One of the very first rules of programming is to ALWAYS use the correct data types for your data. And along with that, never ever depend on implicit type conversions - always use the proper explicit conversion functions.
    And as a slight follow-on, when considering the appropriate data type, don't assume that just because we refer to a given element as a 'something number' that it is indeed a number. Telephone "numbers" are NOT numbers. U.S. Social Security "numbers" are NOT numbers. U.S. Postal Zip codes are NOT numbers. All are just character strings which, by convention, we limit to the same characters we use to represent numbers.
    And since this entire discussion came up around the representation of dates, you might want to take a look at http://edstevensdba.wordpress.com/2011/04/07/nls_date_format/
    Now, go forth and be a smarter programmer than your peers.
    Edited by: EdStevens on Dec 6, 2012 6:12 AM

  • ORA-01861 literal does not match format string, ORA-02063preceding line fro

    We have upgraded a client from 8.0.5 to 9.2.03. The following query is called from a report that was built using Cold Fusion5. It worked in 8.0.5, but not 9.2.03. When you run the report you get the errors
    [Oracle][ODBC][Ora]ORA-01861: literal does not match format string ORA-02063: preceding line from FRPE
    Here's the query:
    SELECT x.acct, x.obj, x.offn, x.status, x.asofdate, max( decode( x.func_id, 1, t, null ) ) UOB, max( decode( x.func_id, 12, t, null ) ) COB, max( decode( x.func_id, 24, t, null ) ) Rate_Warning, max( decode( x.func_id, 2, t, null ) ) Sector_Change, max( decode( x.func_id, 2006, t, null) ) FRRFRD , max( decode( x.func_id, 2003, t, null ) ) No_Tcode , max( decode( x.func_id, 2004, t, null) ) No_Sector FROM ( SELECT a.acct, a.func_id, count(*) cnt, 'Fail' t, b.obj, b.offn, b.status,a.asofdate FROM frpfaud@FRPE a, frpair@FRPE b WHERE a.acct=b.acct AND a.asofdate='2008-02-29 00:00:00' AND b.bnk not like 'B%' and b.obj not in ('KL') and b.obj in ('GAF') GROUP BY a.acct, a.func_id,b.obj,b.offn,b.status,a.asofdate) x GROUP BY x.acct, x.obj,x.offn,x.status,x.asofdate
    Now, this query will not work by running straight through SQL worksheet in either the 8.0.5 or 9.2.03 regions. So I guess it has something to do with Cold Fusion- which I know nothing about. Has anyone had any experience using Cold Fusion to issue a query? What would be the cause of the difference between the Oracle versions? That is the only thing that changed.
    Thanks for any input.

    I actually want the date format of DD-MON-YY. Which, from what I understand, is the default format for both Oracle 8.0.5 and 9.2.03. I'm trying to figure out why it is now displaying as 'yyyy-mm-dd hh24:mi:ss'. I could convince the client that the code needs changing if I had evidence that this version of Oracle (9.2.03) used a different default date format. Or if Cold Fusion pulls the date differently. Ughh.
    Here are the database parameters:
    SQL> show parameter nls_date_format
    NAME TYPE VALUE
    nls_date_format string
    select sysdate from dual;
    SYSDATE
    26-FEB-08
    1 row selected.
    select * from nls_session_parameters
    PARAMETER VALUE
    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY AMERICA
    NLS_CURRENCY $
    NLS_ISO_CURRENCY AMERICA
    NLS_NUMERIC_CHARACTERS .,
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD-MON-RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH.MI.SSXFF AM
    NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY $
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    17 rows selected.
    select * from v$nls_parameters
    PARAMETER VALUE
    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY AMERICA
    NLS_CURRENCY $
    NLS_ISO_CURRENCY AMERICA
    NLS_NUMERIC_CHARACTERS .,
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD-MON-RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_CHARACTERSET WE8MSWIN1252
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH.MI.SSXFF AM
    NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY $
    NLS_NCHAR_CHARACTERSET AL16UTF16
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    19 rows selected.

  • SSIS OLE DB Data Source: literal does not match format string

    Dear All,
    this is my first post on this forum, so sorry if I choose wrong category for this question, but I stuck...
    I'm using SSIS from SQL Server 2k8 R2 in Windows Server 2k8 R2. I have installed Oracle Client 10.2.0.2 32 bits and Oracle Client 10.2.0.4 64bits. I want to connect to Oracle 8i and Oracle 9i by these clients.
    Unfortunately when I want to see a preview, only error occurs to me:
    ORA-01861: literal does not match format string (OraOLEDB)
    I have read a lot about this issue but nothing helps me (to_date, cast, convert etc.).
    This is query which I use:
    SELECT COMPANYID, TRANSACTIONTYPE, TRANSACTIONDATE,
    PRODUCT, PRODUCTIONSITE, BATCHNUMBER,
    BINNUMBER, QUANTITYSTOCKUNIT, QUANTITY,
    UNITOFMEASURE, TRANSACTIONCURRENCYID, COST
    FROM APPS.DW_PRODUCTION
    WHERE TRANSACTIONDATE >= '20050101'
    AND TRANSACTIONDATE &lt; '99991231'I have investigated that the problem is with TRANSACTIONDATE column (which is VARCHAR2 data type in database).
    I want also inform You that the same query in SSIS 2005 on Windows 2005 64 bits worked fine.
    Could You help me to find a solution?
    Thanks in advance,
    Łukasz - chalunster
    PS. Sorry for my english
    Edited by: BluShadow on 16-May-2011 15:15
    put {noformat}{noformat} tags into the message and encoded the &lt; symbol so that it formats correctly.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    user10450810 wrote:
    Dear All,
    this is my first post on this forum, so sorry if I choose wrong category for this question, but I stuck...
    I'm using SSIS from SQL Server 2k8 R2 in Windows Server 2k8 R2. I have installed Oracle Client 10.2.0.2 32 bits and Oracle Client 10.2.0.4 64bits. I want to connect to Oracle 8i and Oracle 9i by these clients.
    Unfortunately when I want to see a preview, only error occurs to me:
    ORA-01861: literal does not match format string (OraOLEDB)
    I have read a lot about this issue but nothing helps me (to_date, cast, convert etc.).
    This is query which I use:
    SELECT COMPANYID, TRANSACTIONTYPE, TRANSACTIONDATE,
    PRODUCT, PRODUCTIONSITE, BATCHNUMBER,
    BINNUMBER, QUANTITYSTOCKUNIT, QUANTITY,
    UNITOFMEASURE, TRANSACTIONCURRENCYID, COST
    FROM APPS.DW_PRODUCTION
    WHERE TRANSACTIONDATE >= '20050101'
    AND TRANSACTIONDATE < '99991231'
    I have investigated that the problem is with TRANSACTIONDATE column (which is VARCHAR2 data type in database).
    I want also inform You that the same query in SSIS 2005 on Windows 2005 64 bits worked fine.
    Could You help me to find a solution?
    Thanks in advance,
    Łukasz - chalunster
    PS. Sorry for my englishHi
    Welcome to OTN Forums!
    Are you sure you are using following code
    SELECT COMPANYID, TRANSACTIONTYPE, TRANSACTIONDATE,
    PRODUCT, PRODUCTIONSITE, BATCHNUMBER,
    BINNUMBER, QUANTITYSTOCKUNIT, QUANTITY,
    UNITOFMEASURE, TRANSACTIONCURRENCYID, COST
    FROM APPS.DW_PRODUCTION
    WHERE TRANSACTIONDATE >= '20050101'
    AND TRANSACTIONDATE < 'If yes, then youistake is there,
    WHERE TRANSACTIONDATE >= '20050101'
    AND TRANSACTIONDATE < 'your script is not ended you can use this
    WHERE TRANSACTIONDATE >= '20050101'
    AND TRANSACTIONDATE < '20110101'or
    WHERE to_date(TRANSACTIONDATE,'YYYYMMDD')  >= to_date('20050101','YYYYMMDD')
    AND to_date(TRANSACTIONDATE,'YYYYMMDD') < to_date('20110101','YYYYMMDD')Edited by: Mahir M. Quluzade on May 16, 2011 6:59 PM

  • ORA-01861: literal does not match format string

    Hi Experts,
    Whenever i am running the my procedure in oracle appliactions i am getting this error.
    ORA-01861: literal does not match format string .
    pkg is below:--->
    CREATE OR REPLACE PACKAGE Arc0471_Pending_Crc_Prc_Pkg IS
      --Insert into Custom Table
        PROCEDURE Arc_Insert_Data(P_ORG_ID VARCHAR2, P_BC_CODE VARCHAR2, P_GL_DATE VARCHAR2, P_DB_LINK VARCHAR2);
    END Arc0471_Pending_Crc_Prc_Pkg;
    CREATE OR REPLACE PACKAGE BODY Arc0471_Pending_Crc_Prc_Pkg IS
            PROCEDURE Arc_Insert_Data(P_ORG_ID VARCHAR2, P_BC_CODE VARCHAR2, P_GL_DATE VARCHAR2, P_DB_LINK VARCHAR2)
            IS
              v_val         varchar2(32000);          
              v_cursor1     integer;
              v_cursor2     integer;
              v_returncode  integer;
            BEGIN
           v_val   := ' ';
            v_val :=' INSERT INTO ARC.ARC_CRC_PRC_INVC ';
              v_val := v_val||' (CTA_TRX_NUMBER ,CTA_TRX_DATE ,DUE_DATE ,';
              v_val := v_val||' BILL_TO_CUSTOMER_NO,     BILL_TO_CUSTOMER_NAME ,     BILL_TO_LOCATION ,';
              v_val := v_val||' BILL_TO_ADDRESS ,ORIGINAL_AMOUNT ,APPLIED_AMOUNT , EXCHANGE_RATE     ,';
              v_val := v_val||' INVOICE_CURRENCY_CODE , ACCOUNT_CLASS , GL_DATE  , CTA_CUSTOMER_TRX_ID ,';
              v_val := v_val||' ORG_ID , CREATED_BY , CREATION_DATE ,LAST_UPDATE_BY , LAST_UPDATE_DATE , LAST_UPDATE_LOGIN )';
            v_val := v_val||' SELECT  CTA.TRX_NUMBER ,     CTA.TRX_DATE , APS.DUE_DATE ,';
              v_val := v_val||' HCA.ACCOUNT_NUMBER ,     HP.PARTY_NAME ,     HCSUA.LOCATION ,';
              v_val := v_val||' SUBSTR(HL.ADDRESS1 ||'||''' '''||'|| HL.ADDRESS2 ||'||'''  '''|| '||HL.ADDRESS3||'||'''  '''|| '||HL.ADDRESS4|| '||'''  ''' ||'||HL.PROVINCE||'||'''  '''||'|| HL.CITY ||'||'''  '''||'|| HL.STATE ||'||'''  '''||'|| HL.POSTAL_CODE ||'||'''  '''||'||FTL.TERRITORY_SHORT_NAME,0,1500),';
              v_val := v_val||' APS.AMOUNT_DUE_ORIGINAL , APS.AMOUNT_APPLIED,APS.EXCHANGE_RATE, APS.INVOICE_CURRENCY_CODE, CTLA.ACCOUNT_CLASS,';
              v_val := v_val||' APS.GL_DATE , CTA.CUSTOMER_TRX_ID , CTA.ORG_ID ,FND_GLOBAL.USER_ID ,';
              v_val := v_val||' SYSDATE , FND_GLOBAL.USER_ID , SYSDATE , FND_GLOBAL.LOGIN_ID '  ;  
             v_val := v_val||' FROM ' ;
             v_val := v_val||' AR.RA_CUSTOMER_TRX_ALL CTA,';
              v_val := v_val||' AR.RA_CUST_TRX_TYPES_ALL CTTA,';
              v_val := v_val||' AR.RA_CUST_TRX_LINE_GL_DIST_ALL CTLA,';
              v_val := v_val||' AR.HZ_PARTIES HP,';
              v_val := v_val||' AR.HZ_CUST_ACCOUNTS HCA,';
              v_val := v_val||' AR.HZ_CUST_SITE_USES_ALL HCSUA,';
              v_val := v_val||' AR.HZ_LOCATIONS HL,';
              v_val := v_val||' AR.HZ_PARTY_SITES HPS,';
              v_val := v_val||' AR.AR_PAYMENT_SCHEDULES_ALL APS,';
              v_val := v_val||' AR.HZ_CUST_ACCT_SITES_ALL HCASA,';
              v_val := v_val||' GL.GL_CODE_COMBINATIONS GCC,';
              v_val := v_val||' AR.AR_RECEIVABLE_APPLICATIONS_ALL ARAA,';
              v_val := v_val||' APPLSYS.FND_TERRITORIES_TL FTL ,';
              v_val := v_val||' ONT.OE_TRANSACTION_TYPES_TL'|| P_DB_LINK ||' IND_OTT, ' ;
              v_val := v_val||' ONT.OE_ORDER_HEADERS_ALL'||P_DB_LINK ||'  IND_OH, ';
              v_val := v_val||' AR.RA_CUSTOMER_TRX_ALL'||P_DB_LINK ||' IND_RCTA   ';
             v_val := v_val||' WHERE   CTA.ORG_ID = '||''''|| P_ORG_ID||'''';
             v_val := v_val||' AND   CTTA.ORG_ID = '||''''|| P_ORG_ID||'''' ;
             v_val := v_val||' AND   CTLA.ORG_ID = '||''''|| P_ORG_ID||'''' ;
             v_val := v_val||' AND   HCSUA.ORG_ID = '||''''|| P_ORG_ID||'''' ;
             v_val := v_val||' AND   APS.ORG_ID =  '||''''||P_ORG_ID||'''';
             v_val := v_val||' AND   HCASA.ORG_ID = '||''''|| P_ORG_ID||'''' ;
             v_val := v_val||' AND   CTLA.ACCOUNT_CLASS     =     '||'''REC''';
              v_val := v_val||' AND   CTLA.GL_DATE <= TRUNC(TO_DATE( '||''''||P_GL_DATE||''''||','||'''DD/MM/RRRR HH24:MI:SS'''||'))';
             v_val := v_val||' AND   NVL(ARAA.APPLY_DATE,TO_DATE( '||''''||P_GL_DATE||''''||','||'''DD/MM/RRRR HH24:MI:SS'''||')) <= TRUNC(TO_DATE ('||''''||P_GL_DATE||''''||','||'''DD/MM/RRRR HH24:MI:SS'''||'))';
             v_val := v_val||' AND   TO_DATE(APS.TRX_DATE,'||'''DD-MON-RRRR'''||') >'|| '''02-SEP-2007''' ;
             v_val := v_val||' AND     CTA.CUST_TRX_TYPE_ID    =     CTTA.CUST_TRX_TYPE_ID';
             v_val := v_val||' AND     CTLA.CUSTOMER_TRX_ID     =     CTA.CUSTOMER_TRX_ID';
             v_val := v_val||' AND     HCA.CUST_ACCOUNT_ID     =     CTA.BILL_TO_CUSTOMER_ID';
             v_val := v_val||' AND     HCA.PARTY_ID          =     HP.PARTY_ID';
             v_val := v_val||' AND     HCSUA.SITE_USE_ID     =     CTA.BILL_TO_SITE_USE_ID';
             v_val := v_val||' AND     HL.LOCATION_ID          =     HPS.LOCATION_ID';
             v_val := v_val||' AND     HPS.PARTY_ID          =     HCA.PARTY_ID';
               v_val := v_val||' AND     APS.CUSTOMER_TRX_ID     =     CTLA.CUSTOMER_TRX_ID';
             v_val := v_val||' AND     HCASA.CUST_ACCOUNT_ID     =     HCA.CUST_ACCOUNT_ID';
             v_val := v_val||' AND   HCASA.CUST_ACCT_SITE_ID =HCSUA.CUST_ACCT_SITE_ID';
             v_val := v_val||' AND   HCASA.PARTY_SITE_ID=HPS.PARTY_SITE_ID';
             v_val := v_val||' AND     ARAA.APPLIED_CUSTOMER_TRX_ID(+) = CTA.CUSTOMER_TRX_ID';
             v_val := v_val||' AND   IND_RCTA.TRX_NUMBER = CTA.TRX_NUMBER';
             v_val := v_val||' AND     TO_CHAR(IND_OH.ORDER_NUMBER) = IND_RCTA.CT_REFERENCE';
             v_val := v_val||' AND     IND_OTT.TRANSACTION_TYPE_ID = IND_OH.ORDER_TYPE_ID';
              --v_val := v_val||' AND   ARC.Arc0463_Get_Remng_Amt(APS.TRX_NUMBER,'||''''|| P_GL_DATE||''''||','||'APS.INVOICE_CURRENCY_CODE) <> 0';
             v_val := v_val||' AND   IND_OTT.NAME IN ('||'''D0M RC Imported Sale'''||','||'''D0M RC Indigenous Sale'''||')';
             v_val := v_val||' AND   GCC.CODE_COMBINATION_ID = CTLA.CODE_COMBINATION_ID';
             v_val := v_val||' AND   GCC.SEGMENT1 = '|| ''''||P_BC_CODE||'''';
             v_val := v_val||' AND   HL.COUNTRY = FTL.TERRITORY_CODE';
             v_val := v_val||' AND   FTL.LANGUAGE = USERENV('||'''LANG'''||')';          
                v_cursor1 := dbms_sql.open_cursor;
              dbms_sql.parse(v_cursor1,v_val,DBMS_SQL.NATIVE);
              v_returncode := dbms_sql.execute(v_cursor1);
              dbms_sql.close_cursor(v_cursor1);
         COMMIT;
         EXCEPTION     
                    WHEN DUP_VAL_ON_INDEX THEN
                                    NULL;
                   WHEN OTHERS THEN
                        COMMIT;
                   FND_FILE.PUT_LINE(FND_FILE.OUTPUT, 'IN WHEN OTHERS THEN OF INSERT INTO ARC.ARC_CRC_PRC_INVC'||SQLCODE || ' - ' || SQLERRM);
                -- dbms_output.put_line(sqlcode||sqlerrm);
            END Arc_Insert_Data;
    END Arc0471_Pending_Crc_Prc_Pkg;in above procdure APS.TRX_DATE having the format like this..23/3/2006. in Backend this procedure is working fine ..in toad(version 8.0.0.47). database is 9.0.
    but in oracle apps it is giving error like "literal does not match format string".
    please give me the solution...
    Thanks in ADv...

    Hi,
    It is the Date Data type...There's your problem then; NEVER, EVER, EVER to_date a date!! As you have discovered, it leads to problems when your code is run on different clients due to the different NLS settings they may have. You've been lucky, in other words, that your code has been working at all!
    What to_dating a date does is this:
    to_date(to_char(date_value, <format in NLS_DATE_FORMAT parameter>), <format in NLS_DATE_FORMAT parameter>) You've been lucky because your NLS_DATE_FORMAT has the same format as the data, on your client. On the database, however, it is clearly different.
    Simply remove the to_date from your already-a-date value, and you should find that it works fine.

  • SQL query error - Literal does not match format string

    Hi All,
    When I am removing these code form query then it is running fine else it is giving error of "Literal does not match format string."
    AND trunc((SYSDATE)) > DECODE(fifs.id_flex_structure_name, 'XXX Service Agreement', trunc(TO_DATE
    (pac.segment3, 'YYYY/MM/DD HH24:MI:SS')),trunc(SYSDATE) )
    Regards,
    Ajay

    Ajay Sharma wrote:
    It is flexfield segment so it can contain anything. For my query it is returning date.....Oh dear. Two really bad design decisions in one, there - storing dates as varchar2 and storing more than one type of data in one column. I suggest you read this: http://www.simple-talk.com/opinion/opinion-pieces/bad-carma/ in order to see just why that might be a bad design.
    If you have any influence at all over the way your tables/app is designed, then I would highly recommend changing the design, as it will save you countless headaches like the one you've currently got.
    If you are absolutely stuck with that design, then a) poor you and b) you'll have to add in some filters onto your queryto make sure you're only selecting rows with dates in that column.

  • Error: Literal does not match format string

    Can anyone help me with the query below. I am trying to insert CMPGN_ID, PGM_KEY, CMPGN_BEGIN_DT into TEMP.
    I get an error 'Literal does not match format string' for 'SELECT to_char(add_months(SYSDATE,-1),'YYYYMM') from dual'
    CMPGN_BEGIN_DT has a data type of DATE.
    INSERT INTO TEMP (CMPGN_ID, PGM_KEY, CMPGN_BEGIN_DT)
    VALUES(
    ('NCR_'|| (select to_char(add_months(SYSDATE,-1),'YYYYMM') from dual)),
    (SELECT PGM_KEY FROM PROGRAM WHERE PGM_NAME = 'NCR'),
    (SELECT to_char(add_months(SYSDATE,-1),'YYYYMM') from dual)
    Thanks

    INSERT INTO TEMP (CMPGN_ID, PGM_KEY, CMPGN_BEGIN_DT)
    SELECT 'NCR_'|| to_char(add_months(SYSDATE,-1),'YYYYMM'),
         PGM_KEY,
         to_char(add_months(SYSDATE,-1),'YYYYMM')
    FROM PROGRAM
    WHERE PGM_NAME = 'NCR';Datatypes are unclear, may need datatype casting with date column, but otherwise the above should work.
    Thx,
    SriDHAR

  • Regular expressions with boolean connectives (AND, OR, NOT) in Java?

    I'd like to use regular expression patterns that are made up of simple regex patterns connected via AND, OR, or NOT operators, in order to do some keyword-style pattern matching.
    A pattern could look like this:
    (.*Is there.*) && (.*library.*) && !((.*badword.*) || (^$))
    Is there any Java regex library that allows these operators?
    I know that in principle these operators should be available, since Regular languages are closed under union, intersection, and complement.

    AND is implicit,
    xy -- means x AND yThat's not what I need, though, since this is just
    concatenation of a regex.
    Thus, /xy/ would not match the string "a y a x",
    because y precedes x.So it has to contain both x and y, but they could be
    in any order?
    You can't do that easily or generally.
    "x.*y|y.*x" wouldll work here, but obviously
    it will get ugly factorially fast as you add more
    terms.You got that right: AND means the regex operands can appear in any order.
    That's why I'm looking for some regex library that does all this ugly work for me. Again, from a theoretical point of view, it IS possible to express the described semantics of AND with regular expressions, although they will get rather obfuscated.
    Unless somebody has done something similar in java (e.g., for C++, there's Ragel: http://www.cs.queensu.ca/~thurston/ragel/) , I will probably use some finite-state-machine libraries and compile the complex regex's into automata (which can be minimized using well-defined operations on FSMs).
    >
    You'd probably just be better off doing multiple
    calls to matches() or whatever. Yes, that's another possibility, do the boolean operators in Java itself.
    Of course, if you
    really are just looking for literals, then you can
    just use str.contains(a) && !str.contains(b) &&
    (str.contains(c) || str.contains(d)). You don't
    seem to need regex--at least not from your example.OK, bad example, I do have "real" regexp's in there :)

  • Error: Sequence does not match type xs:string

    I am using BDB XML 2.5.16 to store and query my XML  documents in Java. The documents are IMDB xml documents containing actors information
    obtained from INEX website https://inex.mmci.uni-saarland.de/login.jsp.  One of  the document I stored in the database is the following
        <?xml version="1.0" encoding="UTF-8"?>
         <persons>
          <person>
              <name>jason angeles
              </name>
              <filmography>
                 <act>
                    <movie>
                       <title>prison planet 3 the revenge 1998
                        </title>
                      <year>1998
                      </year>
                     <character>evil ninja
                      </character>
                   </movie>
                 </act>
              </filmography>
             </person>
             </persons>
    I want to  search using XQuery  for filmography element whose title element contains ANY of the following keywords ('planet', 'revenge', '1998'). Below is the query I used
                  // declaring function functx:contains-any-of
                String qryRk = "declare namespace functx = 'http://www.functx.com'; " 
                      + "declare function functx:contains-any-of "
                     + "( $arg as xs:string?" + " , "  + " $searchStrings as xs:string* )  as xs:boolean { "
                     + "some $searchString in $searchStrings "
                    +  " satisfies contains($arg,$searchString)} ; ";
                 String myQuery101 = qryRk + "for $entity in collection('simpleExampleData2.dbxml')//filmography "
                      + "where functx:contains-any-of ( $entity/act/movie/title ,  ('planet', 'revenge', '1998'))"
                      + "return $entity";
    When I  execute the query  i  expect to get at least get the following element as mu output
                           Document : person_31000.xml:
                        <filmography>
                               <act>
                                     <movie>
                                     <title>prison planet 3 the revenge 1998
                                    </title>
                                    <year>1998
                                    </year>
                                   <character>evil ninja
                                   </character>
                                  </movie>
                               </act>
                             </filmography>
    However instead of the above element i got the  following Error
                                 Exception in thread "main" com.sleepycat.dbxml.XmlException: Error: Sequence does not match type xs:string? - the sequence contains more than one item [err:XPTY0004], <query>:1:343, errcode =               
                                  QUERY_EVALUATION_ERROR
                                      at com.sleepycat.dbxml.dbxml_javaJNI.XmlManager_query__SWIG_0(Native Method)
                                      at com.sleepycat.dbxml.XmlManager.query(XmlManager.java:544)
                                     at com.sleepycat.dbxml.XmlManager.query(XmlManager.java:320)
                                     at xmlirsystemstruxplus.XQueryEngine.queryEngine(XQueryEngine.java:269)
                                     at xmlirsystemstruxplus.XMLIRSystemStruXplus.main(XMLIRSystemStruXplus.java:109)
                                     Java Result: 1
        Note that i used  contains-any-of() function because the contains () function does not work with  'planet revenge 1998' string may be because the keywords do not appear in the order they appear in the element content.
       Please  can any body help me to find out  (1) why i have the  above error ? and solution  (2)  why  the condition contains  ( $entity/act/movie/title ,  'planet revenge 1998') is not working ? how do i use contains() function w.r.t this
    Thank you in advance
    Message was edited by: RokoA 19/01/2015  by RokoA

    Using the shell dbxml in both 2.5 and 6.0 I created a container and put the document example you gave into it.  Then I executed the following query:
    [code]
    declare namespace functx = 'http://www.functx.com';
    declare function functx:contains-any-of ( $arg as xs:string?, $searchStrings as xs:string* )  as xs:boolean {
    some $searchString in $searchStrings
    satisfies contains($arg,$searchString)
    for $entity in collection('simpleExampleData2.dbxml')//filmography
    where functx:contains-any-of ( $entity/act/movie/title ,  ('planet', 'revenge', '1998'))
    return $entity
    [/code]
    And got the results you expected instead of an error.
    Since you are using the Java API it is possible the problem is in how you configured and executed the query, instead of in the query itself.  If you could post an example program or code section that produces the error, then I can continue you help you with this.
    Lauren Foutz

  • The java and sql object type  was not matched

    My table(Oracle10.2) has a varying arrays column. For mapping to java classes, I use JDeveloper(10.1.3.1.0) to generate java classes. Then I try to insert a record into this varrying arrays column with java. While it always complaints java.sql.SQLException.the java and sql object type was not matched. I can not find the reason.
    My java code:
                   StructDescriptor structdesc = StructDescriptor.createDescriptor(
                             "VARRAY_SEQ", con);
                   int nid=20;
                   int pid=546;
                   BigDecimal mynid=new BigDecimal(nid);
                   mynid=mynid.setScale(0, BigDecimal.ROUND_HALF_UP);
                   BigDecimal mypid=new BigDecimal(pid);
                   mypid=mypid.setScale(0, BigDecimal.ROUND_HALF_UP);
                   Object[] attributes = { "ASDF", mynid, "Developer", mypid,
                             "rwretw" };
                   STRUCT Rel = new STRUCT(structdesc, con, attributes);
                   stmt.setObject(8, Rel);
                   stmt.execute();
                   stmt.close();
    And the STRUCT is
    public RelSeq(String nucl, java.math.BigDecimal neId, String nuor, java.math.BigDecimal pId, String phor) throws SQLException
    { _init_struct(true);
    setNucl(nucl);
    setNeId(neId);
    setNuor(nuor);
    setPId(pId);
    setPhor(phor);
    }

    My table(Oracle10.2) has a varying arrays column. For mapping to java classes, I use JDeveloper(10.1.3.1.0) to generate java classes. Then I try to insert a record into this varrying arrays column with java. While it always complaints java.sql.SQLException.the java and sql object type was not matched. I can not find the reason.
    My java code:
                   StructDescriptor structdesc = StructDescriptor.createDescriptor(
                             "VARRAY_SEQ", con);
                   int nid=20;
                   int pid=546;
                   BigDecimal mynid=new BigDecimal(nid);
                   mynid=mynid.setScale(0, BigDecimal.ROUND_HALF_UP);
                   BigDecimal mypid=new BigDecimal(pid);
                   mypid=mypid.setScale(0, BigDecimal.ROUND_HALF_UP);
                   Object[] attributes = { "ASDF", mynid, "Developer", mypid,
                             "rwretw" };
                   STRUCT Rel = new STRUCT(structdesc, con, attributes);
                   stmt.setObject(8, Rel);
                   stmt.execute();
                   stmt.close();
    And the STRUCT is
    public RelSeq(String nucl, java.math.BigDecimal neId, String nuor, java.math.BigDecimal pId, String phor) throws SQLException
    { _init_struct(true);
    setNucl(nucl);
    setNeId(neId);
    setNuor(nuor);
    setPId(pId);
    setPhor(phor);
    }

  • Not understanding the String matches (regular Expression)

    Everytime I search I do not find any examples of java String's matches function.
    I am reading an input file and just want to print if it matches the pattern
    /thisdirectory/source_code/*.cc
    I even tried to test by doing
    if( line.matches("[a-z]") ){
    System.out.println("IT MATCHES");
    Which should just test if there is any letter a to z, which there is in the file but it never comes back as true that it fines a to z in the line.

    I totally understand what you are going through, maybe someone could shed some light on my problem as well.
    In my code the getText() method is pulling the text from a form being filled out. I am checking for validation of fields: But the problem is that my code wont compile with matches method inside these lines of code.:
    else if ( !firstTextField.getText().matches( "[A-Z][a-zA-Z]*" ) )
              JOptionPane.showMessageDialog(this, "Invalid First Name");
              else if(!lastTextField.getText().matches("[A-Z][a-zA-Z]*" ) )
                        JOptionPane.showMessageDialog(this, "Invalid Last Name");
              else if(!addressTextField.getText().matches("\\d+\\s+([a-zA-Z]+\\s[a-zA-Z]+") )
                        JOptionPane.showMessageDialog(this, "Invalid Address");
              else if(!cityTextField.getText().matches("[a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+") )
                        JOptionPane.showMessageDialog(this, "Invalid City");
              else if(!stateTextField.getText().matches("[a-zA-Z]+|[a-zA-Z]+\\s[a-zA-Z]+") )
                        JOptionPane.showMessageDialog(this, "Invalid State");
              else if(!zipTextField.getText().matches("\\d{5}") )
                        JOptionPane.showMessageDialog(this, "Invalid ZipCode");
              else if(!phoneTextField.getText().matches("[1-9\\d{2}-[1-9]\\d{2}-\\d{4}") )
                        JOptionPane.showMessageDialog(this, "Invalid Phone number. Please enter phone number in format 1-111-111-1111");
    The error I am receiving is:
    The method matches(String) is undefined for the type String.
    What gives?

  • Java.lang.Exception: Number of responses does not match queries

    Hi,
    We recently installed Oracle Database 10g Release 10.2.0. Installation and everything else was ok. When we try to access the Database Console(Enterprise Manager) we are getting the following error on the top:
    "java.lang.Exception: Number of responses does not match"
    and it doesn't show the Host CPU graph and Active Sessions graphs. Else everything is ok. Database is also up and running. We can perfome all the tasks.
    Any idea what could be the possible reason and solution for it.
    Thanks and Regards
    Inderjeet Singh

    Did you ever figure out the cause of this error message? If not, does anyone else have an idea what may be causing this to occur. I also just finished an install and have experienced the same condition.
    thanks,
    edl

  • DBD::mysql object version 4.013 does not match bootstrap parameter 4.005

    The issue is with XServe running 10.6.2.
    Out of the box Perl doesn't come with DBM::MySQL module installed. To be able to install it, I first had to download MySQL libraries (instructions and link to the file are here: http://support.apple.com/kb/HT4006 ).
    After that I was able to install (manually with "make") the latest module DBD-mysql-4.013 which Perl now acknowledges. However, when module is called, following error is thrown:
    "install_driver(mysql) failed: DBD::mysql object version 4.013 does not match bootstrap parameter 4.005 at /System/Library/Perl/5.10.0/darwin-thread-multi-2level/DynaLoader.pm line 230.
    Compilation failed in require at (eval 3) line 3."
    Suspecting that Perl is looking for a 3-year old version 4.005, I did try removing 4.013 and installing 4.005 instead (as I couldn't find any other clear solution) but 4.005 failed to pass "make test" - not very surprisingly as it is that old - so I chose not to try installing it and put 4.013 back in and still got same error.
    If somebody could kindly provide/direct me to clear instructions to resolve this problem your help will be much appreciated! Thanks in advance.

    Unfortunately, I didn't document right away what I did to get this resolved but this is what I remember. This is a hack, I found a suggestion online that lead me to this. However, a FAIR WARNING - this is dangerous for the system.
    I went into the module file mysql.pm located here:
    cd /Library/Perl/5.10.0/darwin-thread-multi-2level/DBD
    vi mysql.pm
    I commented out the line that specifies version of the file, 4.013, and put 4.005 line instead:
    #$VERSION = '4.013';
    $VERSION = '4.005';
    If server is not rebooted, this doesn't change anything, error will still be thrown. So I rebooted the server from command line.
    This reboot did not go well, server went into some kind of intermediate state, I lost web access. We had to do a hard reboot by cycling power physically on the server itself. After that server came back up, log was full of all kinds of errors. Now all of a sudden the error "object version 4.013 does not match bootstrap parameter 4.005" wasn't thrown anymore. Apparently, version of this module is not read from the module .pm file itself every time module is called, it is instead stored somewhere else and is looked up there, wherever "there" may be. I suspect one of the files used during boot got confused when version number didn't match and it caused chain reaction and a bad reboot.
    Later on I went back into the file and changed version number back to 4.013 as it is supposed to be, and commented the other line out:
    $VERSION = '4.013';
    #$VERSION = '4.005';
    MySQL on Perl functioned fine since then.
    Server has been rebooted weeks later during 10.6.3 upgrade and this time it didn't cause any problems with the module. Still works.

Maybe you are looking for