Here is a simple way to re-create the problem:
- Compile sample2.pco as follows:
cd /db01/app/oracle/product/8.1.7/precomp/demo/procob2
make -f demo_procob.mk sample2
- Prepare to connect to an Oracle 8.1.7 database:
export TWO_TASK=myora817
- Execute it:
sample2
- it works:
CONNECTED TO ORACLE AS USER: SCOTT
SALESPERSON SALARY COMMISSION
----------- ---------- ----------
ALLEN 1600.00 300.00
WARD 1250.00 500.00
MARTIN 1250.00 1400.00
TURNER 1500.00 0.00
HAVE A GOOD DAY.
4) Prepare to connect to an Oracle 7.3 database:
export TWO_TASK=myora73
5) Execute it:
sample2
- it fails:
CONNECTED TO ORACLE AS USER: SCOTT
SALESPERSON SALARY COMMISSION
----------- ---------- ----------
ORACLE ERROR DETECTED:
ORA-01457: converting column overflows decimal datatype
- Here is the FETCH within sample2.pco:
EXEC SQL FETCH SALESPEOPLE
INTO :EMP-NAME, :SALARY, :COMMISSION
END-EXEC.
- Here is the definition of SALARY and COMMISION in WORKING-STORAGE:
01 EMP-REC-VARS.
05 EMP-NAME PIC X(10) VARYING.
05 SALARY PIC S9(6)V99
DISPLAY SIGN LEADING SEPARATE.
05 COMMISSION PIC S9(6)V99
DISPLAY SIGN LEADING SEPARATE.
This proves that Oracle 8.1.7 has a bug when accessing an Oracle 7.3
database.
Oracle is refusing to fix this on two grounds:
- Oracle does not support a higher-level client (8.1.7) connecting to
a lower-level database (7.3)
- Oracle does not support 7.3 any more.
The support person wants me to upgrade my 7.3 database. That,
however, is a monumental task, as it is our Data Warehouse.
That's rather disappointing. This bug has apparantly been around
since 8.1.7 came out, but was never fixed.
VictorReinhart
Received on Wed Oct 23 2002 - 10:19:53 CDT