Hi,
I am trying to convert a EBCDIC format file to ASCII using MarkLogic. I am able
to convert a simple EBCDIC file text, but when the file contains COMP or COMP
-3 colomn type, it stops the conversion and returns the text till the
beginning of COMP field.
Here is what I have done till now.
1. Kept a EBCDIC file name ZOS.FCUSTDAT.bin in my root folder where
MarkLogic is installed.
2. Loaded the document into MarkLogic database and specified the encoding
format as 'ebcdic-cp-us' using :
xquery version "1.0-ml";
xdmp:document-load("\ZOS.FCUSTDAT.bin",
<options xmlns="xdmp:document-load">
<encoding>ebcdic-cp-us</encoding>
</options>
)
3. Confirmed the file content to be binary using:
xquery version "1.0-ml";
xdmp:describe(doc("\ZOS.FCUSTDAT.bin ")/node())
This query returned:
fn:doc("\ZOS.FCUSTDAT.bin")/binary()
4. Using binary-decode I saved the file to ASCII format using:
xdmp:save(
'/ test-output.txt',
text {
xdmp:binary-decode(doc('ZOS.FCUSTDAT.bin '), 'ebcdic-xml-us') },
<options xmlns="xdmp:save">
<output-encoding>ascii</output-encoding>
</options>)
The copybook of the input file is as below:
01 CUSTOMER-DATA.
05 CUSTOMER-ID PIC 9(6).
05 PERSONAL-DATA.
10 CUSTOMER-NAME PIC X(20).
10 CUSTOMER-ADDRESS PIC X(20).
10 CUSTOMER-PHONE PIC X(8).
05 TRANSACTIONS.
10 TRANSACTION-NBR PIC 9(9) COMP.
10 TRANSACTION OCCURS 0 TO 5
DEPENDING ON TRANSACTION-NBR.
15 TRANSACTION-DATE PIC X(8).
15 FILLER REDEFINES TRANSACTION-DATE.
20 TRANSACTION-DAY PIC X(2).
20 FILLER PIC X.
20 TRANSACTION-MONTH PIC X(2).
20 FILLER PIC X.
20 TRANSACTION-YEAR PIC X(2).
15 TRANSACTION-AMOUNT PIC S9(13)V99 COMP-3.
15 TRANSACTION-COMMENT PIC X(9).
File is getting encoded into ASCII only till 10 CUSTOMER-PHONE PIC X(8). The
next colomn i.e the COMP field is not getting encoded. Please suggest a
solution.
Thanks,
Vipitha
**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely
for the use of the addressee(s). If you are not the intended recipient, please
notify the sender by e-mail and delete the original message. Further, you are
not
to copy, disclose, or distribute this e-mail or its contents to any other
person and
any such actions are unlawful. This e-mail may contain viruses. Infosys has
taken
every reasonable precaution to minimize this risk, but is not liable for any
damage
you may sustain as a result of any virus in this e-mail. You should carry out
your
own virus checks before opening the e-mail or attachment. Infosys reserves the
right to monitor and review the content of all messages sent to or from this
e-mail
address. Messages sent to or from this e-mail address may be stored on the
Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general