convert numeric to packed decimal in sort

?>

A 7 byte PD field which holds the value +3721500532006 can be made readable using the below sort card. You can convert data to itsHEX or BI equivalent using the TRAN function in your sort card . If you want a packed-decimal number to be human-readable with a sign then you will need to convert it into another format, a numeric-edited format. Example - . Making statements based on opinion; back them up with references or personal experience. How to have multiple colors with a single material on a single object? OUTREC: arithmetic with numeric and constants, OUTREC: Reformatting records with OVERLAY, OUTREC: Reformatting records with FINDREP, OUTFIL: Creating multiple identical copies, OUTFIL: Updating counts and totals in trailer. 02 FILLER PIC X(72). I had him immediately turn off the computer and get it to me. I just need to convert the type 30 record. Have you looked at the questions in the packed-decimal tag? REFFILE. OUTREC used to convert the numeric fields from one type to another type. So now we get the decimal point, but still have a leading zero. How to convert packed decimal values to numeric values via File Master using COBOL copybooks This document describes how packed decimal values (Computational-3) can be converted to numeric values via File Master using COBOL copybooks.The only method to get this done is to use a File Master Reformat data set, aka. Browse the man pages of ascii command. you would have to use "strings" to have some sort of formatting. Did the Golden Gate Bridge 'flatten' under the weight of 300,000 people in 1987? Note: it's not duplicated as I am looking for code that can read a file and pass a parameter to Unpack method. Flashback: April 28, 2009: Kickstarter website goes up (Read more HERE.) By default, a 4-byte BI value produces a 10-byte ZD value,if you wish to modify . 05 WS-DATE PIC 9(08) VALUE 20181119. From the above I cannot tell what is working and what is not. 01 DATAREC1NEW. Once your file is ready, here is the code to convert packed decimal to human readable decimal. Which one to choose? You can use use DFSORT's UFF or SFF formats to handle values like that and TO=PD to convert to packed decimal. I need to write code in python which will convert packed decimal data to zoned decimal or decimal data.If anybody already have written function for it please . Conversion to packed decimal. It can be processed in two way - Convert it from hex to string (i.e. Do not tail-gate old topics. What does "up to" mean in "is first up to launch"? Find centralized, trusted content and collaborate around the technologies you use most. Looking for job perks? I would prefer to use sort (PGM=SORT) if possible. Also include sufficient data values. 9(07) is odd, 7 divided by 2 is 3.5, rounded to 4 and filling the 0.5 space with the letter. Enter 2 and 3 in the TO section of the panel, for example: CA File Master Plus -- Reformat your.CONVERT.LIB(REFORMAT), ------------------------------------------------------------------------------. Would you ever say "eat pig" instead of "eat pork"? It's not them. (it would be a 13 digit number on each line of the file), Read a packed decimal (Comp-3) number value which is 8 characters; but holds a 13 digit number and convert to 13 digits numeric value, https://www.codeproject.com/Tips/673240/EBCDIC-to-ASCII-Converter. Making statements based on opinion; back them up with references or personal experience. If your data keep its original encoding (IBM EBCDIC) it will be: If your data was translated to ASCII or UTF-8 you will have problems to return it to EBCDIC because some bytes could be omitted, anyhow the Python program just will change. Why in the Sierpiski Triangle is this set being used as the example for the OSC and not a more "natural"? Why typically people don't use biases in attention mechanism? ', referring to the nuclear power plant in Ignalina, mean? Write a program to read in each record, convert the amount to packed decimal, and write to a new file. For sign, you may prefer using + symbol in the PIC clause of the edited field. Joined: 27 Dec 2002 Posts: 46 Topics: 15: Posted: Fri Jul 11, 2003 7:20 am Post subject: Convert from Packed decimal to numeric using sort: Hi, We need to convert a PIC S9(09) COMP field to PIC 9 . Generic Doubly-Linked-Lists C implementation. Unexpected uint64 behaviour 0xFFFF'FFFF'FFFF'FFFF - 1 = 0? The only method to get this done is to use a File Master Reformat data set, aka. For example://your_job_card//REFMT EXEC PGM=CAWABATC,REGION=4M //STEPLIB DD DSN=your.FM110.CDBILOAD, // DISP=SHR //SYSPRINT DD SYSOUT=* //SYSUDUMP DD SYSOUT=* //SYSUT1 DD DSN=your.CONVERT.INPUT, // DISP=SHR //SYSUT1O DD DSN=your.CONVERT.OUTPUT,// DISP=SHR //SYSIN DD * COPY , INFILE(SYSUT1), OUTFILE(SYSUT1O), REFFILE(your.CONVERT.LIB(REFORMAT)), REPLACEKEY(N) /* Now, when running the job and using the following three records input file:------------------------------------------------------------------------------.@record#01-----------------------------------------------------------------0013579889987FF6666666666666666666666666666666666666666666666666666666666666666600246C953694B0100000000000000000000000000000000000000000000000000000000000000000------------------------------------------------------------------------------record#02-----------------------------------------------------------------0022229889987FF6666666666666666666666666666666666666666666666666666666666666666600222C953694B0200000000000000000000000000000000000000000000000000000000000000000------------------------------------------------------------------------------record#03-----------------------------------------------------------------0033339889987FF6666666666666666666666666666666666666666666666666666666666666666600333C953694B0300000000000000000000000000000000000000000000000000000000000000000------------------------------------------------------------------------------The OUTPUT will contain the numeric data:BROWSE your.CONVERT.OUTPUT Line 0000000000 Col 001 080Command ===> Scroll ===> CSR ********************************* Top of Data **********************************01234567record#01---------------------------------------------------------------02222222record#02---------------------------------------------------------------03333333record#03---------------------------------------------------------------******************************** Bottom of Data ********************************, https://techdocs.broadcom.com/content/broadcom/techdocs/us/en/ca-mainframe-software/devops/ca-filemaster-plus/11-0/using-batch/batch-reference-for-ca-file-master-plus/keywords/keyword-descriptions1.html#concept.dita_de213555aa271bc5db6b08bc7a3ffe71e3bb4084_REFFILE. 02 FILLER PIC X(72). REFFILE.Such a REFFILE will be created via File Master ISPF 3.11 menu("11 REFORMAT Convert file from one record layout to another"). By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. NIntegrate failed to converge to prescribed accuracy after 9 \ recursive bisections in x near {x}. Running shell command and capturing the output. Support for NetApp SyncSort for z/OS, Visual SyncSort, SYNCINIT, SYNCLIST and SYNCTOOL. That's packed-decimal with an implicit decimal point and sign in the last half byte. I am seeking code to read a text file which is in packed decimal (Comp -3) numeric value which was created in main frames system and is 8 characters, but holds a 13 digit number in packed decimal format. I've been doing help desk for 10 years or so. On what basis are pardoning decisions made by presidents or governors when exercising their pardoning power? What's the cheapest way to buy out a sibling's share of our parents house if I have no cash and want to pay less than the appraised value? Can you explain where the packed-decimal data is coming from, and why they can't just give you character data? by Frank Yaeger Thu Feb 17, 2011 6:17 pm. Ethical standards in asking a professor for reviewing a finished manuscript and publishing it together. Read packed decimal and convert to numeric in spring boot. Posted: Tue May 08, 2007 11:25 pm. This gets a little messy, because } is a zoned decimal negative zero, which isn't as straightforward to work with as other negative numbers. S after the digits indicates a trailingsign, DFSORT provides a set of 27 predefined mask to be used directly for formatting,these masks can be directly mentioned in the sort card like shown below. mentioning a dead Volvo owner in my last Spark and so there appears to be no Thanks in advance ! I am more concern about writing it to file. REFFILE. There are might beinstances when you need to convert the internal storage of a numeric filed , DFSORT allows you to accomplish this outside your program , lets look at the various options available. So files becoming corrupt when we transfer packed decimal or binary data files in ASCII transfer type. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide, I have added the image of how the file looks like in the question, @VijenderReddyChintalapudi why are you using, I was suspicious on the way i am reading the file, can you help on how to read the file while passing to Unpack method ? How can we convert a number with decimals.. The range of the data bytes in . 02 FIELD1-PCK PIC 9(08)V99 COMP-3. Please include the source code that you have tried, what results that gives, and what your expected result should look like. What was the actual cockpit layout and crew of the Mi-24A? Tikz: Numbering vertices of regular a-sided Polygon. These final character . Why did US v. Assange skip the court of appeal? Effect of a "bad grade" in grad school applications. Does Python have a ternary conditional operator? I just need to convert the type 30 record. I was rightfully called out for All Rights Reserved. WS-PREMIUM having value -1234.10 will be stored in as x'0123410D'. Why can't the change in a crystal structure be due to the rotation of octahedra? The standard signs are used: hexadecimal F for positive numbers and hexadecimal D for negative numbers. Short story about swapping bodies as a job; the person who hires the main character misuses his body, Limiting the number of "Instance on Points" in the Viewport. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. A minor scale definition: am I missing something? Why does Acts not mention the deaths of Peter and Paul? JES, JES2, JCL utilities, IDCAMS, Compile & Run JCLs, PROCs etc Write a program to read in each record, convert the amount to packed decimal, and write to a new file. Such a REFFILE will be created via File Master ISPF 3.11 menu ("11 REFORMAT Convert file from one record layout to another").You need two COBOL data structures, aka. Input File - MTHUSER.SORT.INPUT01 - FB file of 80 length 05 WS-PREMIUM PIC S9(05)V9(02) comp-3. Specifies the field1 target format length. In the example that I've shown, the PIC clause of numeric edited field (WS-B) has got +ve sign, whereas the input value is -ve. Hi @VinDesai, in the code snippet which you've shown above, it looks like. So I think the packed decimal (in its raw IBM format) to number conversion can be done with . Could a subterranean river or aquifer generate enough continuous momentum to power a waterwheel for the purpose of producing electricity? In case you do not know Packed-decimal is represented like (123 = x'123c'). Thanks in advance. That is a File Master 3.11 Reformat example:------------------ CA File Master Plus -- Dataset Reformat ------------------OPTION ===> BLANK - Update Reformat Control Parms E - Execute Reformat Reformat "FROM": Dataset name ===> 'your.CONVERT.INPUT' Member name ===> Layout DSN ===> 'your.CONVERT.LIB' Layout member ===> CPYBK#O1 Reformat "TO": Dataset name ===> 'your.CONVERT.OUTPUT' Member name ===> Layout DSN ===> 'your.CONVERT.LIB' Layout member ===> CPYBK#N1 Replace Keys ===> N ('Y' to replace duplicate keys in KSDS) Reformat Control Parm: Dataset name ===> 'your.CONVERT.LIB' Member name ===> REFORMAT Execution mode ===> E O = Online S = Submit JCL E = Edit JCL After pressing enter you have to assign the "FROM" fields to the "TO" fields. 0) SORT is not JCL, and it has no more relation to JCL than any other existing utility/program/module 1) Your sample output is not packed decimal, it is a simple character string.To implement this example you would need just to concatenate character string C'.00' to previous 4-character string from your data. In the name of God, go!" This topic has been locked by an administrator and is no longer open for commenting. Asking for help, clarification, or responding to other answers. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide. I am seeking code to read a text file which is in packed decimal (Comp -3) numeric value which was created in main frames system and is 8 characters, but holds a 13 digit number in packed decimal f. Stack Overflow. To learn more, see our tips on writing great answers. Looking for job perks? Re: Conversion to packed decimal. I also heard there is a way they do this in java but not sure how. On what basis are pardoning decisions made by presidents or governors when exercising their pardoning power? Connect and share knowledge within a single location that is structured and easy to search. Your original post did not mention SORT nor any other method, specifically. Browse other questions tagged, Where developers & technologists share private knowledge with coworkers, Reach developers & technologists worldwide. Ramanath, It's not clear what exactly you want the output to look like when you replace the 11 byte field with a 5 byte field, but assuming you want the 5-byte PD field in positions 11-15 and 16-25 replaced with blanks, you can use a DFSORT job like the following: by Robert Sample Thu Feb 17, 2011 5:26 pm, by Robert Sample Thu Feb 17, 2011 6:20 pm, by steve-myers Thu Feb 17, 2011 7:27 pm, by Frank Yaeger Thu Feb 17, 2011 11:47 pm. To continue this discussion, please ask a new question. If you want a packed-decimal number to be human-readable with a sign then you will need to convert it into another format, a numeric-edited format. How a top-ranked engineering school reimagined CS curriculum (Ep. 565), Improving the copy in the close modal and post notices - 2023 edition, New blog post from our CEO Prashanth: Community is the future of AI. Since you're going from an 8-byte field to a 5-byte field, I overlaid 3 blanks after the 5-byte field. I think I am not clear in the above question. I would prefer to use sort (PGM=SORT) if possible. Unfortunately I can not help you then. Connect and share knowledge within a single location that is structured and easy to search. The problem I have is that people can explain things quickly but I can only comprehend slowly. Input File - MTHUSER.SORT.INPUT01 - FB file of 80 length. oc One of my customers reported that someone took over his computer, was moving the mouse, closing windows, etc. To learn more, see our tips on writing great answers. +,+++9.99 gives -0.99 if the value is -.99, +1.25 if the value is 1.25. Created up-to-date AVAST emergency recovery/scanner drive Can you be more clear with an example? Frank Yaeger - DFSORT Development Team (IBM) -, http://www.catb.org/~esr/faqs/smart-questions.html, http://www.ibm.com/support/docview.wss? Thanks for contributing an answer to Stack Overflow! Your daily dose of tech news, in brief. Here I reframe it again. I need to have that data in packed decimal format (unsigned . I have tried the following on IBM mainframe COBOL, and got these results. How to convert packed decimal values to numeric values via File Master using COBOL copybooksThis document describes how packed decimal values (Computational-3) can be converted to numeric values via File Master using COBOL copybooks.The only method to get this done is to use a File Master Reformat data set, aka. convert x123c ==> '123c') which can be converted to a number very easily or manipulate the nybbles. Evaluate numbers from the argument and return a particular value. That is a File Master 3.11 Reformat example: ------------------ CA File Master Plus -- Dataset Reformat ------------------. 2014 - 2023 Mainframestechhelp. When a gnoll vampire assumes its hyena form, do its HP change? When converting from zoned decimal to packed decimal, the zones (high-order nybbles of each byte) are discarded, except for the zone of the low-order byte, which is used to determine the sign for the number. Content Discovery initiative April 13 update: Related questions using a Review our technical responses for the 2023 Developer Survey, DISPLAY in COBOL of Signed Comp-3 Data shows unexpected output, Programs hangs when opening COBOL Indexed file, Converting comp-3 back to a human readable format, Cobol COMP-3 value changes after write to dataset, Having trouble unpacking Comp-3 in .Net. NIntegrate failed to converge to prescribed accuracy after 9 \ recursive bisections in x near {x}. If you want the sign to abut then number then specify it as a floating sign e.g. Top. The only method to get this done is to use a File Master Reformat data set, aka. Is there a generic term for these trajectories? Type of record is present in the first 2 bytes of the record. Did the Golden Gate Bridge 'flatten' under the weight of 300,000 people in 1987? If there is an odd number of packed halves, four leading bits of 0 are added. Which was the first Sci-Fi story to predict obnoxious "robo calls"? Making statements based on opinion; back them up with references or personal experience. One copybook for the source data structure and one for the new data structure.For example: 01 DATAREC1OLD. VASPKIT and SeeK-path recommend different paths. Comparison functions Compare numbers, or strings, or both and return a value. Aninput file with the 5 records can be converted to HEX and BI values as shown below. I need to write code in python which will convert packed decimal data to zoned decimal or decimal data.If anybody already have written function for it please help me with it. Bonus Flashback: April 28, 1998: Spacelab astronauts wake up to "Take a Chance on Me" by Abba (Read more Last Spark of the month. Sample data in the file looks like: After pressing enter you have to assign the "FROM" fields to the "TO" fields. It's not them. The low-order byte contains one digit in the leftmost portion and the sign (positive or negative) in the rightmost portion. If you want a binary value to made readable , you can do so by converting it to an equivalent Zoned Decimal. Leading + signs are ignored. WS-PREMIUM having value +1234.10 will be stored in as x'0123410C' or can someone please help me with this. You might have to check PICTURE clause editing in COBOL. convert Decimal to Packed-decimal ron, November 03, 2006 - 11:33 am UTC . Literature about the category of finitary monads. What is the Russian word for the color "teal"? Asking for help, clarification, or responding to other answers. To learn more, see our tips on writing great answers. For example, if your character value was in positions 1-15, you could use these DFSORT control statements: Code: OPTION COPY. English version of Russian proverb "The hedgehogs got pricked, cried, but continued to eat the cactus". @piet.t As per your suggestion, I've added the example code in the answer rather than links. rev2023.4.21.43403. How to write Signed Numeric fields in Syncsort? The OUTPUT will contain the numeric data: BROWSE your.CONVERT.OUTPUT Line 0000000000 Col 001 080. I used numeric-edited with chain of signs that gave me desired results. Some useful links: PICTURE Clause Editing and Edited Pictures. The ascii table is anyway available in UNIX. g3T7000080. What does 'They're at four. OUTREC used to convert the numeric fields from one type to another type. Location: San Jose, CA. Note that the negative zones are in position 2; position 7 is positive. Welcome to the Snap! IBMMainframes.com is not an official and/or affiliated with IBM. I have a single type 30 record that contains a numeric of 8 bytes with leading zeros compressed starting from position 3 till position 10 in the record. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. What's the cheapest way to buy out a sibling's share of our parents house if I have no cash and want to pay less than the appraised value? What differentiates living as mere roommates from living in a marriage-like relationship? rev2023.4.21.43403. Hello! For reference I added how the data inside the file looks like: The ASCII transfer type will transfer the files as regular text files. Are there any canonical examples of the Prime Directive being broken that aren't shown on screen? To subscribe to this RSS feed, copy and paste this URL into your RSS reader. OUTREC FIELDS=(starting position of field1, length of field1, field1 source format, TO . Re: Conversion to packed decimal. 565), Improving the copy in the close modal and post notices - 2023 edition, New blog post from our CEO Prashanth: Community is the future of AI. What does 'They're at four. Proper way to declare custom exceptions in modern Python? Can my creature spell be countered if I cast a split second spell after it? So please use Binary transfer type for your case. Find centralized, trusted content and collaborate around the technologies you use most. PD values are stored as integers in a compressed internal format but if you know what kind of value is stored in the filed you can use the EDIT feature of DFSORT to make these readable, the EDIT feature also allows you to insert comas , hyphens to make the fields more interpretable as well. The Binary transfer type will transfer the data in binary mode which handles the files as binary data instead of text data. If possible give 1 row from your source and mention, what you want to convert it to. 05 FILLER PIC X(01). The output shows -ve. You can either use 'ZD,TO=PD' or 'ZD,PD' depending upon the Sort product/version your shop has. One of the more interesting events of April 28th The below are the list of numeric formats -. Packed-decimal format means that each byte of storage (except for the low order byte) can contain two decimal numbers. On whose turn does the fright from a terror dive end? Content Discovery initiative April 13 update: Related questions using a Review our technical responses for the 2023 Developer Survey, C#: Convert COMP-3 Packed Decimal to Human-Readable Value, Interpreting COMP-3 Packed Decimal Fields into numeric values, int value under 10 convert to string two digit number. Is it safe to publish research papers in cooperation with Russian academics? You need two COBOL data structures, aka. packed decimal to zoned decimal or decimal conversion python, sourceforge.net/projects/stingrayreader/?source=directory. You can either use 'ZD,TO=PD' or 'ZD,PD' depending upon the Sort product/version your shop has. While it has been rewarding, I want to move into something more advanced. Can I general this code to draw a regular polyhedron? 15 ws-CHARGE OCCURS 10 TIMES PIC S9 (07)V99 COMP-3. To subscribe to this RSS feed, copy and paste this URL into your RSS reader. Content Discovery initiative April 13 update: Related questions using a Review our technical responses for the 2023 Developer Survey, Converting mainframe byte zip code to varchar or string. Anyway, I saw in my test that OpenCOBOL don't follow this rule and fill ever. Scenario - Convert the first five byte ZD to FS in the input file. To convert A -> 1, B -> 2 do s = translate(s,'12','AB') the X2C can be used to setup the packed decimal (for packed decimal to String ther is a c2x function) code to convert a character string (number) to packed Decimal is roughly: but a letter is added at the end. Here is what I've done: By the looks of the product, Informatica should be able to do it. Packed decimal numbers occupy approximately half the disk storage space required by unpacked decimal numbers. Can we use the same code using PGM=SORT ? Also i cannot define sign + or - in program since it will be depending on the computational values. I mean the input is 98666698 and the output should be 986666.98 . How do I stop the Flickering on Mode 13h? . rev2023.4.21.43403. Such a REFFILE will be created via File Master ISPF 3.11 menu, 11 REFORMAT Convert file from one record layout to another, How to convert packed decimal values to numeric values via File Master using COBOL copybooks, This document describes how packed decimal values (. copybooks. To find your encoding cpxxxx value look in this table or in your emulate terminal or COBOL IDE (openCOBOL indicate it in the bottom right corner). 01 DETAIL-LINE. Thanks for contributing an answer to Stack Overflow! This character could be 'd' if the number is negative signed, 'c' if it is positive signed or 'f' if the number is not signed. So here we get the sign, and it is readable, but we don't get a decimal point and we have a leading zero. I have come across a situation where the value coming in from record is in below format Formatting functions Manipulate the characters and spacing in strings supplied in the argument. So now we don't have a leading zero (but do have a leading space). I have a numeric string like this: "123456" . How do I stop the Flickering on Mode 13h? How to combine several legends in one frame? This should help you. The remaining type 10 and type 20 records need not be converted. ', referring to the nuclear power plant in Ignalina, mean? The remaining type 10 and type 20 records need not be converted. By default, a 4-byte BI value produces a 10-byte ZD value,if you wish to modify this and give a custom value , we can use the LENGTH option along with TO, BI values can also be converted to readable FS or floating sign values using TO=FS. Has depleted uranium been considered for radiation shielding in crewed spacecraft beyond LEO? packed to 5 bytes, the -ve sign should store as D in the last half byte. Your post has been split and cross-referenced. Re: Conversion to packed decimal. 02 FIELD1-NUM PIC 9(06)V99. One copybook for the source data structure and one for the new data structure. Is there an existing gem or script that converts comp-3/packed decimal format to number? This value should be written to file with its sign as +1234.10$ or -1234.10$. Do you really want to convert Zoned-Decimal; Zoned-Decimal is different between the Mainframe (-121 = 12J) and Ascii-Cobols (121 = 12Q). You can convert a numeric value to Packed numeric using OUTREC/INREC statement. By clicking Post Your Answer, you agree to our terms of service, privacy policy and cookie policy. can anyone confirm if i am reading properly. By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. I have had this message pop up for one of my old clients I still do support for and I am still the Admin for on their 365 system. Conversion functions Convert one type of data representation to another type of data representation. I let you both programs python and COBOL in this GitHub repo. Try Sort with Edit mask. Site design / logo 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA. There are letter characters aside from sign character inside Comp-3 value. S before the digits indicates a leading sign. Zoned decimal equivalent in Syncsort for DB2 decimal datatyp by Prasanna G Thu Apr 16, 2015 7:46 am 5 Replies 2328 Views Last post by BillyBoyo Thu Apr 16, 2015 12:29 pm Packed Decimal Subtraction by krbnsol Mon Aug 01, 2022 12:26 pm 2 Replies 1308 Views Last post by sergeyken Mon Aug 01, 2022 10:37 pm Convert Signed Zoned Decimal to Packed Decimal, http://www.ibmmainframeforum.com/syncsort-synctool/topic9521.html, Re: Convert Signed Zoned Decimal to Packed Decimal, Zoned decimal equivalent in Syncsort for DB2 decimal datatyp, To convert Julian date in packed format to Gregorian. COBOL DATATYPE CONVERSION: Number to Packed Numeric, Packed Date COMP-3, how to convert decimal to Packed decimal/COMP-3, Format decimal number with digit grouping and limit the number of digits, Having trouble unpacking Comp-3 in .Net.

Amr Covid Testing Results Springfield, Ma, Riding Lawn Mowers No Credit Check Near Me, How Many Directors Have The Rangerettes Had?, Articles C



convert numeric to packed decimal in sort