PreparedStatement loses negative sign?!?: setInt()/setObject()

I have 3 sql statements in my application (1 select/1 update and 1 insert) where I've noticed that after some time of working properly, all of a sudden these statements stop handling negative integers and instead process them as positive integers.
i.e. the select statement would return result as if the where clause parameter was positive instead of negative, the insert statement would actually insert the number as a positive, etc... The only way for me to fix the problem is the restart the iPlanet application server (connecting to an oracle 8.1.7 db using the oracle 8.1.7 jdbc)
I log the parameters from the PreparedStatement setInt() and setObject() comments just before execution and clearly the values are logged as negatives.
e.g. (not the actual source code, but the same idea)
PreparedStatement pstmt =
conn.prepareStatement ("insert into testTable (anInt, name) values (?,?)");
int anInt = -1;
String name = "test";
System.out.println("Before insert: " + anInt + " " + name); // outputs Before insert: -1 test
pstmt.setInt(1, anInt);
pstmt.setString (2, name);
pstmt.execute ();
====================
select * testTable;
anInt name
===========
1 test
Any ideas?
regards,
Rob

Did the author of the original posting (Rob Terro) ever learn anything about the nature of this problem and the appropriate fix?
We are observing what sounds like the same behavior: after some time of working properly, all of the sudden stored procedures to which we pass negative parameters (in particular, -1) in Java start receiving these as positive parameters at the database.
We are using the Oracle JDBC 8.1.6 thin driver, running on Solaris 5.9 generic_112233-03, using the Sun HotSpot JVM, version 1.3.1_07.
We had been running with this configuration for some time without apparent problems. Recently, we added to the command line the JVM "-server -Xconcurrentio" options. These greatly improved performance, but apparently lead to this problem of losing negative signs when talking to Oracle. However, the problem appears erratically, so we are not 100% certain that these options cause the problem. Also, we would ideally like to hang on to the performance gains produced by using these options.
How does this configuration compare to the configuration used by the original poster when he encountered this problem?
Does anyone have insight into the possible nature of this problem?

Similar Messages

  • CurrencyFormatter Strips Negative Sign

    I would like to format a field containing a currency value
    when it loses focus. However, when tabbing in and out of a
    previously formatted field containing a negative sign, the sign is
    removed. For example, if I use the CurrencyFormatter on a number
    such as -34, I get the result -$34.00. However, if I that field is
    again exposed to the CurrencyFormatter, it reformats -$34.00 to a
    result of $34.00 without the negative sign.
    Any ideas? Thanks in advance,
    David

    OK, thanks flexsam. I guess that makes sense. I was just
    hoping it was a little more sophisticated than that. You know, like
    actually accepting a valid currency string.
    I guess I'll have to dive into trying to make a custom
    validator.
    Thanks,
    David

  • Move negative sign (minus) to left side of value in gui_download

    Hi,
    While downloading data using gui_download I want to bring the negative sign to the left side of the value. Is this possible?
    Regrads,
    Madhu

    Hi,
    Use FM
    CALL FUNCTION  'CLOI_PUT_SIGN_IN_FRONT'
    Regards.
    Eshwar.

  • Negative sign display for CURR field in ALV grid report

    I have a field BETRG defined as CURR field of length 15, decimal places 2. The value may be negative or positive. In case of negative values I am using EDIT_MSK option in the field catalog to bring the negative sign to the left of the value as shown below.
    Quote
    CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
          i_program_name         = sy-repid
          i_internal_tabname     = 'LT_FINAL'
          i_inclname             = sy-repid
        CHANGING
          ct_fieldcat            = fieldcat[]
        EXCEPTIONS
          inconsistent_interface = 1
          program_error          = 2
          OTHERS                 = 3.
    LOOP AT fieldcat.
        CASE fieldcat-fieldname.
            WHEN 'BETRG'.
            fieldcat-ctabname = ' '.
            fieldcat-cfieldname = ' '.
            fieldcat-edit_mask = 'RRV_______________.__'.
        ENDCASE.
        MODIFY fieldcat.
      ENDLOOP.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_buffer_active    = 'X'
          i_callback_program = sy-repid
          i_grid_title       = 'ABCD'
          is_layout          = gs_layout
          it_fieldcat        = fieldcat[]
          i_save             = 'A'
          is_variant         = gs_save
          it_events          = gs_events
        TABLES
          t_outtab           = lt_final
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
    Unquote
    On displaying the report using 'REUSE_ALV_GRID_DISPLAY' as shown above, when the value of BETRG is a smaller number like say 624, then the ALV output appears as '-            624.00' instead of '-624.00'.
    Is there any way that I can remove the space in between the negative sign and the number before displaying the ALV output using 'REUSE_ALV_GRID_DISPLAY'?

    Hi Deepak,
    I tried this and found that this doesn't work in case of currency field. Once you move back the char field (with negative sign to the left and condensed)  to the currency field, the negative sign again moves back to the right.
    I think that the only way a negative sign can be brought to the left of the currenct field is by using edit_mask of field catalog as I have shown above.
    Regards,
    Shayeree.

  • Negative sign for DMBTR field in ALV output

    Hi Experts,
    Before posting I have searched for more than 3 hours in the forums to get a solution for this.
    I did not get any solution so I am posting this problem which I need to resolve.
    I have to display the DMBTR field in ALV output for which a grand total will have to be displayed.
    Here for all the values in DMBTR which are negative are getting displayed as '-        6673.56','-       289956.23' as I am using the edit mask 'V_____________.__'.
    I have to get the value shown as '-6673.56', '-289956.23'.
    I tried to use convert this DMBTR to String and have successfully displayed the negative sign correctly in front of the value but I am not getting the totals which I need to have
    PLease check and suggest for a solution.
    Regards
    Kishore

    Hi,
      If this is the case, then you can use character field to display the sign on the left. Sum up the total and use the event end of list to display the same. Remember to set the TECH and NO_OUT in the field catalog.
    Hope this helps.
    Regards,
    Siva

  • Editable field in ALV does not accept negative sign values

    Hi guys,
    We have an editable field in ALV but it does not accept negative sign,,, it is causing an error... We need to input a negative value in that editable field...
    How to handle this?
    Thanks!

    Hi Mark,
      This topic has been just discussed at this thread:
    Problem with OO ALV
    Regards,
    Chandra Sekhar

  • How to remove the negative sign in universe designer?

    hi all,
    have used BEX query designer first to create the query, for the key figures, i have choose 'reverse sign' option and in the BEX analyzer report, it showing correctly with the figure having 'reverse sign'.
    however, the 'reverse sign' was not being carried over to universe designer when i tried to create a universe from the BEX query created earlier on. how do i find the option to 'reverse sign' in universe designer for the key figures?
    pls help.
    thank you.

    Hi,
    i tried creating  new 'measure' object with function 'sum', in the select statement, how should add in the multiply by -1?
    i tried typing this -> @Select(Marginal Profit\Marginal Profit) x -1 in the Select box but it failed during the parse part.
    FYI, the 'marignal pofit' above is the original 'measure' object that i want to have its negative sign reversed.
    pls help.thanks.

  • Problem of negative sign in conversion of hexadecimal to decimal.

    class D {
    public static void main (String args[]) {
    int i= 0x80000000;
    int j=0x7FFFFFFF;
    System.out.print(i+" , "+j);
    The value of 'i' = 8*(16^7) =2^31 i.e. 2 raised to power 31.
    But it prints -2^31= -2147483648. My problem is that how we are getting a negative sign in 'i' ?
    while On printing 'j' we get a positive value.

    The max value for an int is 2,147,483,647. Since your number is larger than that, it wraps around to be a negative number.

  • Numbers with negative sign

    Hi,
    SAP send value to XI as 100.00-
    In XI, I send this to standard subtract function where it expect this as -100.00
    Which is the good way to move the negative sign to the left ?
    Please do note there coould be situation where this value can come as positive so I have to take care of both situations.
    Thanks in advance.

    Hi,
    Check with the below mapping
    src--------------\
      Constant[-]-----| replaceString-----neg------
      Constant[]----/                             |
                                                  |
                                                 then
    src---------------\endswith-------------->if         --------->tgt
    Constant[-]-------/                          else  <---------src

  • Printing value fields with negative sign??

    Hello Experts,
    I have developed a interface, which writes the invoice data to application server/unix, this is a notepad. My specifications are as below,
    MWSK1(2)   TaxCode                         65     2     KONV-MWSK1     
    KWERT(13)  Condition Value                  67     13   KONV-KWERT     
    KSTEU(1)  Condition Control                80     1     KONV-KSTE
    I have to print KWERT value from 67th position until 13 positions, meaning until 80 positions, fine. My code is as below,
      MOVE: wa_invoice_price-mwsk1  TO unix_file+64(2).
      WRITE: wa_invoice_price-kwert    TO unix_file+66(13) RIGHT-JUSTIFIED.
      MOVE:  wa_invoice_price-ksteu    TO unix_file+79(1),
    So, it printing like below (pls. note 0.04 minus value in right bottom corner)
    P26701ZCG620101006C          100.00         0.00USD  1    UGL            0.00A A 9
    P60001ZF3520101006C          100.00         0.00USD  1    UGLG          0.04-H B 9
    But, business want to have like below (pls. note the DIFFERENCE for 0.04 minus value in right bottom corner),
    P26701ZCG620101006C         100.00        0.00USD  1    UGL               0.00   A A 9
    P60001ZF3520101006C         100.00         0.00USD  1    UGLG             0.04 - H B 9
    meaning, the 13th position should be negative sign (if at all any value does have a negative sign, else its normal)....so, the negative sign should sit on 13th postion. As am using WRITE statement with RIGHT JUSTIFIED am facing thisissue!! as u know we can not send a 'P' type value to unix/apps server, pls. let me know how to get it done?
    Thank you

    why can't the user live with a leading sign, like '-   0.04'?  If possible, do
    shift <fieldname> circular up to '-'.
    Or, if value is less than zero, set another variable to '-', else set to space, and multiply value with '-1', like:
    if <field> < 0.
       lv_sign = '-'.                " neagtive value
      <field> = <field> * '-1'.  "reverse the sign
    else.
    lv_sign = space.          "positive value
    endif.
    then, adjust your field length and insert a sign column or simply add a column for the sign....

  • Transferring the negative sign from Right to Left for a currency field.

    Hi All,
    I am trying to transfer the negative sign in a currency field from right to left but in doing that i am not getting the comma seperators of the currency field.
    For eg : If the value is 12,345,678.00- then after converting it i am getting it as
    -12345678.00 and i am loosing the commas.
    I am trying to transfer the negative sign by first converting the currency field into character field.
    Kindly help for the same.
    Thanks,
    Sharadendu

    Hi,
    Use FM CLOI_PUT_SIGN_IN_FRONT.
    Try this code as well
    data: var(10),
    length type i.
    var = '300-'.
    write var.
    length = strlen( var ).
    length = length - 1.
    replace first occurrence of '-' in var+length(1) with ''.
    concatenate '-' var into var.
    write:/ var.
    Regards,
    Satish
    Message was edited by:
            Satish Panakala

  • Negative Sign in the front for amount

    Hi Friends,
    i am facing problem in negative sign
    while using fm : cloi_put_sign_in_front which accepts char variable.
    In my report amount type is char15 and here negative sign appears after using this fm but when i download this data in one other char structure DATA: BEGIN OF itab_proextract OCCURS 0,
            line(502) TYPE c,
          END OF itab_proextract.
    Amount is right justified always..but afterusing this amount gets displayed in left due to this my other variable which are getting downloded after amount comes as concatenated for ex...
    Before :
    00102384NALCUS/406FED      00AX          4.26-         5126.84-
    After
    00102384NALCUS/406FED      00AX-4.26           -5126.84
    Please help me....

    Hi,
      You can reer to the following links:
    negative sign in front.
    negative sign before amount in report display(urgent)
    or
    try this code
    data : l_amt(15) value '435.46-'.
    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
           CHANGING
                VALUE = l_amt.
    write : l_amt.
    or
    you can try this :
    DATA : BEGIN OF IG_DOWNLOAD OCCURS 0,
    F1(4),
    F2(4),
    F3 TYPE DMBTR,
    F4 TYPE I,
    F5 TYPE NETPR,
    F6,
    END OF IG_DOWNLOAD.
    DATA : BEGIN OF IG_DOWNLOAD1 OCCURS 0,
    F1(4),
    F2(4),
    F3(16),
    F4 TYPE I,
    F5(16),
    F6,
    END OF IG_DOWNLOAD1.
    DATA : VALUE(16).
    IG_DOWNLOAD-F1 = 'AAAA'.
    IG_DOWNLOAD-F2 = 'BBBB'.
    IG_DOWNLOAD-F3 = '-3.86'.
    IG_DOWNLOAD-F4 = 1.
    IG_DOWNLOAD-F5 = '4.58-'.
    IG_DOWNLOAD-F6 = 'A'.
    APPEND IG_DOWNLOAD.
    CLEAR IG_DOWNLOAD.
    LOOP AT IG_DOWNLOAD.
    MOVE-CORRESPONDING IG_DOWNLOAD TO IG_DOWNLOAD1.
    VALUE = IG_DOWNLOAD-F3.
    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
    CHANGING
    VALUE = VALUE.
    IG_DOWNLOAD1-F3 = VALUE.
    VALUE = IG_DOWNLOAD-F5.
    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
    CHANGING
    VALUE = VALUE.
    IG_DOWNLOAD1-F5 = VALUE.
    APPEND IG_DOWNLOAD1.
    CLEAR IG_DOWNLOAD1.
    ENDLOOP.
    CALL FUNCTION 'GUI_DOWNLOAD'
    EXPORTING
    FILENAME = 'C:\A1.xls'
    FILETYPE = 'ASC'
    WRITE_FIELD_SEPARATOR = 'X'
    TABLES
    DATA_TAB = IG_DOWNLOAD1.
    Thank You.
    Regads,
    Dhanalakshmi L

  • How to display NEGATIVE sign on the left side of a number in SMARTFORMS

    Hi,
         In smartforms I'm trying to print some negative values, but the negative sign is displayed on the right hand side of the number.
    How can I display the '-' sign on the left hand side of a number. I tried the logic &value(<), it works well in sap scripts. Why is it not working in smartforms ?
    Eg :   I'm getting  the output  as  126.75 -
             I want :  - 126.75

    see this wiki which gives details for restrictions of formatting options (I guess you didn't declare the variable correctly, i.e. with the right data element): http://wiki.sdn.sap.com/wiki/display/ABAP/SAPscript#SAPscript-WhatarethevarioustextformattingoptionsinSAPscript%3F

  • The option 'Display Credit Balance with negative sign" was not activated.

    I've encountered with a huge problem after load opening balance.
    I forgot to tick the  option 'Display Credit Balance with negative sign"
    It makes my client's Chart of Account  uncommon such as credit balance in Cash Account, AR .....
    However, I've search the sap  note to solve it  as follow:
      Description of the bug::     
    When creating the company in the system the option 'Display Credit Balance with negative sign' was not activated.
    Once transactions were created in the system the functionality can not be changed.
    Limits of the query:     
    After running the update query, please restart SBO first and then   run the restore 'GL account and bp balances';
    otherwise, the cashed value of SBO will not be updated and restore function may not take effect.
    1. Meaning of  restart SBO => restart SBO Service Manager right?
    2. Please help me please to find "The restore G/L account and bp balances" form.  Where is it?;
    Thank you

    Hi,
    I would think that you are following the PEQ instructions for note 970813, correct?
    If this is the case and you are using 2007 then you will find the restorev in the top menu; Help -> Support Desk -> Restore. You will find the functions here. Please note that this should only be used on direct instruction from support or a note like in this case. A backup should also be taken before running restore.
    Regards,
    Jesper

  • Negative Sign for Asset G/L Account balance

    hi
       I m having one problem....I created the sales invoice for a customer "ABC" of total INR 63000.00 and when the customer paid the amount for that invoice thru "Cheque" .Banking -
    >Incoming Payments and i selected the BP code "ABC" and the invoice related to him get displayed and i choose the related invoice and went to "Payment Means" -
    >"Check" tab
          G/L Account -
    > 124563 ( Initially this account balance is 0.00)
      I entered all the Cheque details and its amount and added that incoming payment.
        After adding when i check the account balance 124563 its showing the balance as -63000.00 , the amount is shown in negative sign
        Company Details
          Display Credit Balance with Negative Sign is unchecked
       Please anyone help me out in making the balance with positive sign
    Edited by: Rajeswari Palaniyappan on Nov 25, 2008 10:00 AM

    Hi Rajeswari
    This is a common error that consultants make when implementing SAP Business One. There is no quick fix for this and the best is to create a new database and re-import all the transactions and masters. Make sure this time that the Display Credit Balance with Negative Sign is ticked.
    Unfortunately this one tick affects the way amounts are posted to the journal tables & others and cannot be fixed manually. You could try raising a support message with SAP but I am sure they will tell you the same thing I have.
    Kind regards
    Peter Juby

Maybe you are looking for

  • How do I install and configure VirtualBox

    Hi , I originally hijacked a thread VirtualBox - somewhat off-topic that was vaguely similar to what I am experiencing, but a kind forum moderator has split my question away because hijacking someone else's issue is poor forum etiquette. Here is what

  • How can i cancel the order I need cancel the order AD009341699 of adobe acrobat?

    my computer was restart and a need cancel de order I AD009341699 of adobe acrobat.

  • SAP MDM-XI-R/3 Scenario

    Hi, I'm working on MDM-XI-R/3 integration. The integration between R/3 and MDM has been done. First XI posts Idoc ADRMAS and then posts Idoc DEBMAS. We tried sending the data thrice. the first two times ADRMAS was getting posted to the application su

  • Bringing back transform value inputs in Adobe After Effects?

    Last night I opened up After Effects CS4 to rotate and scale an image. But when I click on the layer and twirl down the Transform tab, the yellow numbers that often are on the right side of the values are missing! And I don't know how to get the back

  • Empty field Validation before Print, What's Wrong with THIS code??

    I have been trying unsuccessfully to get this code to work.. I am stumped!  I created a print button.  Then added this script under "Form Calc" in the Click event of the button.  But when clicked nothing happens.  I have a radio button group that has