Long / double value convertion to Packed Decimal

Hi,
Could anybody tell me how to convert a long / double value to Packed Decimal (AS400) ?
Thanks,
Probir

Now I'm writing this value in a flat file by
FileOutputStream and sending to mainframe through FTP.
But the mainframe people said it's not converted into
packed decimal. Is it the right way to convert ??When you say "mainframe" I assume you are referring to a machine that uses EBCDIC. Java, even on the iSeries, uses Unicode and not EBCDIC, so when you FTP anything to the mainframe it will go through an ASCII-to-EBCDIC conversion. You want this to happen for text but you don't want it to happen for packed decimals; your carefully-constructed x'12' x'3f' bytes will be dutifully converted into EBCDIC garbage.
FTP of an iSeries file (in the QSYS.LIB file system) to a mainframe is trivial because both client and server use EBCDIC, so there are no conversion issues. So if you could do it that way, you definitely should. Otherwise you are going to have to take your packed decimal data and replace it by the bytes that would be translated into it if it were in EBCDIC. The translation table QEBCDIC in library QSYS shows you how it does that, so use that table. You can look it with the command WRKTBL QSYS/QEBCDIC. You'll notice for example that x'09' in ASCII gets converted to x'05' in EBCDIC. So if you want to get x'05' into part of a packed decimal field on the mainframe, you have to send it x'09'. And so on. Like I said, I would recommend doing something other than this. Ask the mainframe people to not make you used packed decimal, for example.
PC²

Similar Messages

  • Convert Mainframe Packed Decimal to Oralce Number Format

    Dear all,
    I am having a file in which amount fields are given in a Packed Decimal format. Can anyone suggest me how I can read this data element from the file and convert it into Oracle Number datatype.
    File is a fixed length. All the amount fields are given in Packed Decimal Format and rest of the fields are given in text format.
    Thanks and regards
    Nagasayan Puppala

    Hi,
    Firstly thanks for your reply.
    Actually I am not using SQL Loader to load data from
    a flat file to Oracle table. I am writing a custom
    program that reads the file and populates the oracle
    table. I'll put aside the question of 'why' you'd want to do that. SQL*Loader's singular purpose in life is to load flat files of data into Oracle DB. Sometimes there is a reason for reinventing the wheel.
    How does your program communicate with the Oracle DB? If utilizing ESQL and Pro*Cobol (or Pro*<whatever> ) you will have read the data into a variable of some type in you host language. The variable of the host variable to hold the value (if you did a 'select from' that table) would be the correct target type for an insert statement. Whatever host language type conversion is available bewteen those two types ( if they are different at all ) is all that is needed. The precompilers have converters between certain native host and internal Oracle types built-in. It is how you get any data between the two systems. This is only a problem if the host language has no converter between the numeric types (if differnet.). When you read from the flat file are you reading it into a native packed decimal in the host language?
    ODBC/JDBC similar strategy..... cast conversion between the native type that Oracle wants and the one into which your custom program reads it into.
    So I want to know whether there are any Oracle
    utility programs that will convert the packed decimal
    to a oracle number format or not.There are Oracle routines that convert into the native Oracle DB formats. There are implicitly available through the normally utilized interfaces to OCI ( ESQL and ODBC/JDBC ) . There are none decoupled from those interfaces though (that I know of).
    There are no standalone programs that mutate a flat file into another flat file that then could be loaded. That's is typically slower and utilzes more space than most customers want than just directly inputing the data into Oracle DB.
    Message was edited by:
    lytaylor

  • Double value truncated to two decimal places without rounding the value.

    I want to truncate double value to two decimal places without doing the rounding of the value.
    Is there any method which can directly do the truncation.

    There's many ways to achieve this such as using
    BigDecimal's setScale method or type-casting. This is
    the way I like to do it:double d = -5.239;
    d = d > 0 ? Math.floor(d * 100) / 100.0 : Math.ceil(d
    * 100) / 100.0;
    Your division by 100 may cause an rounding error, because there are numbers which no finite binary representation. That's splitting hairs! I know ;-)

  • Is there any java Charset for converting EBCDIC packed decimal to ASCII?

    Pls reply if you know the solution.

    This is not a function of a Charset, because of the packing. There are plenty of EBCDIC<->ASCII libraries out there.

  • Long double with OCI

    I'm developing a C++ library with oracle OCI library. I'm loading from a Oracle Database 11g database. Here I need to load large values with decimal places. In this case I need to use long double instead of double. I'm not sure whether OCI supports for long double.
    According to the documentation SQLT_FLT is for float and double only. Can someone let me know whether OCI supports for long double and if so how to retrieve them

    Hi,
    The problem with SQLT_FLT is that the Oracle client fetches the value as NUMBER and then performs the conversion to the native double/long double type.
    NUMBER is not supporting the full IIEE double range of values.
    That why Oracle introduced in Oracle 10g the BINARY DOUBLE SQL type that can be fetched using SQLT_BDOUBLE / native host long variable. Thus the all range of C double and long double values can be used within OCI.
    Regards,
    Vincent

  • How to keep 2 decimal places for double value

    Hi,
    I need rounding function, which should round a double number till 2 digits, if there is no decimal part it should append 2 zero's in decimal places.
    eg. 100 --- > 100.00
    200.234 --> 200.23.
    I tried with Number class. but it is returning string, from that string if I try to convert to double value, it is rounding off one digit.
    Can any one help on this problem.
    Thanks,
    Suman.ch

    I am using xmlBeans using that I need to write this
    rounded value into a xml file, for that I need only
    double value with 2 decimal places.You can probably write the value as a String instead of a double somehow, so you can use the DecimalFormat class.
    You could try their mailing-lists for users/developers:
    http://xmlbeans.apache.org/community/index.html

  • How to move the value from a character field to numeric or packed decimal

    Hi,
    can anyone explain me on how to move the value from a character field to numeric or packed decimal.
    Please help me on this. Thanks...
    Regards,
    Rose.

    Hi ,
    if you use keyword MOVE u may loose the decimal and thoussan separator and if u don't want to loose them just call the FM ..HRCM_STRING_AMOUNT_CONVERT.
    i doubt wherther it is HRCM or HCRM just try using *
    this will suit ur requirement.
    Regards,
    KK

  • How do i convert a float value to a double value?

    How do i convert a float value to a double value? HELP PLEASE!! im very stuck!! i gota float data type and i need to convert it to a double data type in order to use it in another operation.....
    thank u so much!

    safe dint realise ppl were so arrogant. thanks for the reply but less of the sarcasm!

  • How to convert from scientific notations to double value ?

    Hi all,
    i need to convert a string 2E-23 to corresponding double values so that i can compare it one more existing double value. Is there any API present for this ?
    Thanks and regards,
    rosamama.

    Note: This thread was originally posted in the Swing forum, but moved to this forum for closer topic alignment.

  • Converting String  into a Double value

    Hi
    iam really stuck can anyone please help that what i should do
    to convert a String variable into a double value
    iam using CLDC1.1 and MIDP2.0
    please tell me how its done
    Thank in advance

    hi,
    thanx alot it really worked now i want to convert the answer of the double variable back to string can you please tell me how to do it thanx alot

  • How can I limit a double value to two decimal place?

    How can I limit a double value to two decimal place?
    Java keeps on adding zero's to a simple double subtraction:
    1497 - 179.64 = 1317.3600000000001The answer must have been simply: 1317.36

    If the trouble is with output ...
    If the trouble is with value accuracy ...The trouble is with OPs understanding of and/or expectations of IEEE 754 floating point numbers. o_O
    [And it's probably a view (output) issue.]
    how can i actually use numberformat to cut those
    unwanted decimal places?Read the API - Puce already provided the link.

  • How to correct a double value to two decimal places

    hi,
    How to correct a double value to two decimal places
    eg.
    double tt=100.100032
    i want to correct to 2 decimal places
    ie tt=100.10
    regards,
    jagan

    Check my other reply on the other thread. Please don't cross-post.

  • Round a double value to a specific number of decimal places?

    Hello,
    Is there standard java function which will round a double value to a specified number of decimal places? Something like:
    double d = 4.34523;
    d = round(d, 2);
    where d is finally assigned the value of 4.34?
    Thanks!
    -exits

    No, because doubles hold values in binary (as do all values in a computer, of course, but there's no additional stuff to indicate decimal values).
    If you want values with specific rounding rules in decimal, use java.math.BigDecimal.
    If you just want to format the number with a specified number of decimal digits, use java.text.DecimalNumber.

  • Please help in converting double value to date..

    Hi Friends,
    I have a double value which I am getting from reading the excel file using Apache POI Classes.
    For example: The date in the excel cell is 12/18/2008 and when reading the cell using the POI class it is returning 39800.0
    instead of returning the original excel date 12/18/2008.
    Basically I need to convert back the double value 39800.0 to 12/18/2008.
    Did anybody face issue like this, or is there any other way to get date value from excel files.
    I am posting part of my code for reference..
    public String getCellValues(HSSFCell cell) {
              if (cell.getCellType()==0 ) {
                   return ""+cell.getNumericCellValue();
              if (cell.getCellType()==1 ) {
                   return cell.getStringCellValue();
              return "";
    Thanks in Advance
    James George.

    Cells have a type (string, numeric, blank etc) and that's about it as far as content is concerned.
    But they do have a style.
    cell.getCellStyle() will return you an HSSFCellStyle. And this class has a method getDataFormat() which returns a short value. I guess you might attempt to guess that a numeric value "was" a date from the fact the returned value is one of the known date formats.
    http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFDataFormat.html
    In other words if you look at
    short format = cell.getCellStyle().getDataFormat();and you see a 2 you know you are looking at an ordinary ("0.00") number value. If you see a 14 you are looking at a ("m/d/yy") date. And so on for the rest.

  • Parsing a packed decimal value

    I am doing an extraction of BKPF and my ETL process is failing because the data which is being returned via RFC_READ_TABLE for KURS2 is '0.1234-'
    When I go in to SE16 and look at that record, the displayed field value (based on localisation to F) is: '/0,1234'.
    KURS2 has a datatype of P. Its values also should be always unsigned (since a negative currency conversion rate doesn't make any sense). Are signed values in P fields which come out of RFC_READ_TABLE have the - sign at the end (like a BCD?) or is it returning that because the RFC is misparsing the '/' in the actual field? And why would the UI allow someone to enter such a value? (I understand that it looks like whoever entered it wanted something to divide WRBT* by KURS2 to get DMBT2 or whatever, but that seems strange to me).

    How do you store the "PACKED DECIMAL" in Oracle?
    Do you use one of the following data types:
    NUMBER(n,n)
    DECIMAL(n,n)?
    or
    is it mainframe data that is represented in PACKED DECIMAL format that you've loaded into Oracle via SQL Loader.
    P;

Maybe you are looking for

  • PhotoShop Starter Ed 3.2

    I am trying to remove Photoshop Starter Edition 3.2, and just use Elements.  I have tried to remove it in Add/remove Programs.  It tells me This action is only valid for products that are currently installed.  I then registered the eddition that I ha

  • Anyone having problems installing a fresh copy of Windows 7?

    Yeah, so I've been doodling in my spare time with my MSDN access and decided to build that dev environment I've been trying to build for quite some time. Be prepared for quite a read! I pull out a bunch of used gear. Set it all up and start the proce

  • Determining canvas type using PLSQL

    Is it possible to determine the canvas type at runtime ? I have a canvas name or canvas id. I want to find out if the canvas is a content, stacked or tab canvas Somre more info .... Tab canvas is my biggest problem right now. I tried detecting it by

  • JTree expand/collapse annoyance

    Is there a way to collapse a tree node only when the minus sign is pressed, and not when the name of the node itself is pressed? Or do I have to set up a mouse listener for this? I'd rather not do this b/c I recall it interfering with my drag and dro

  • MDS Reference Fails on Windows 7 32bit

    Hello All. We have an issue where references to an xsd which imports another xsd in my local MDS repository fails when I try to create variables or use it to define a message in a bpel process or web service. The error is "Exception: Unable to parse