[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
No Subject
Hi,
An interesting phenomenon has occurred (translate: this has been
frustrating the h... out of me for 2 days). The intent is to port data
from an Abacus database on a Wang to a table which will be used by
PeopleSoft Financial System on an RS6000 with a Sybase platform.
SCENARIO 1
The program reads an input record from a flat file with a numeric amount
defined as:
EXT-AMOUNT PIC 9(09)V99 ('V' is an implied decimal)
In the program, this amount is loaded into the field -- #Amount:
let #Amount = substr($LoadRecord,16,11)
the sign, a separate field, is evaluated and a "-" added as necessary
If $Sign != '+' let #Amount = -#Amount
then it loads this field to yet another field:
move #Amount to $Amount_out
finally it loads this field, within an SQL statement, into the
PeopleSoft table as:
convert(money,$Amount_out).
ORIGINAL DATA: 00000244817
EXPECTED RESULT: 000002448.17
ACTUAL RESULT: 00000244817.00
SCENARIO 2
I redefined the field in the original input file to have a hard
decimal in place:
EXT-AMOUNT PIC 9(09).99
I changed the length to reflect the hard-coded decimal
let #Amount = substr($LoadRecord,16,12)
I ran the SQR load progam getting rid of the convert statement.
Instead I just loaded the field containing the decimal
$Amount_out
This time I got the following error message:
(SQR 5528) Sybase DBSQLEXEC error in cursor 1:
(257) Implicit conversion from datatype 'VARCHAR' to
'DECIMAL' is not allowed. Use the CONVERT function to
run this query.
SCENARIO 3
It was suggested that SQR might only recognize money as a field with a
length of 14 characters. So I changed the input file again to add two
additional leading zeros while retaining the hard-coded decimal.
EXT-AMOUNT PIC 9(11).99
I changed the length to reflect the new data
let #Amount = substr($LoadRecord,16,14)
This time I ran the SQR load program with the following results:
ORIGINAL DATA: 00000002448.17
EXPECTED RESULT: 00000002448.17
ACTUAL RESULT: 00000002448.17
Please, can someone explain to me why I had to have a 14-char field
for SQR to convert the field to money...or if I missed some other way
to resolve this problem.
Thanks in advance,
Lorene