Oracle CASE statement precompile error in Micro Focus
- From: "Craig" <craig.essington@xxxxxxxxx>
- Date: 26 Jul 2005 14:39:36 -0700
We are converting our COBOL from DB2 to Oracle (also IBM z/OS to Micro
Focus Server Express on Linux) but have run into an Oracle precompile
issue: Two cursors that use the CASE statement in DB2. While I
believe the CASE statement is not ANSI SQL, Oracle's documentation
suggests it also supports (since 8i) the CASE statement in what appears
to be the nearly the same format as DB2.
To test that the error was due to the precompiler (and not the large
complex cursor), I created a small, simple cursor:
EXEC SQL
DECLARE TEST_CURS CURSOR WITH HOLD FOR
SELECT 'TESTING'
, CASE
WHEN (7 > 5)
THEN 'TRUE'
ELSE 'FALSE'
END AS TEST_VAL
FROM DUAL
END-EXEC.
However, when I precompile the COBOL program in Server Express with
Oracle 10g, I get the following error suggesting an issue with the
"WHEN" clause of the CASE statement:
606 EXEC SQL
607 DECLARE TEST_CURS CURSOR WITH HOLD FOR
608 SELECT 'TESTING'
609 , CASE
Error at line 610, column 30 in file testprog.sks
610 WHEN (7 > 5)
610 .............................1
610 PCB-S-00400, Encountered the symbol "(" when expecting one of
the following:
, INTO FROM
611 THEN 'TRUE'
612 ELSE 'FALSE'
613 END AS TEST_VAL
^LPro*COBOL: Release 10.1.0.2.0 - Production on Tue Jul 26 16:29:16
2005
Copyright (c) 1982, 2004, Oracle. All rights reserved.
614 FROM DUAL
615 END-EXEC.
I also tried it without the enclosing parentheses, but with no luck.
The error simply points to the "7" instead.
I appreciate any help someone could provide on the topic and thanks in
advance.
Thanks,
Craig
.
- Follow-Ups:
- Prev by Date: Re: sequential file formats
- Next by Date: Re: "Shared" procedure division code
- Previous by thread: Re: Checking RACF for CICS TS
- Next by thread: Re: Oracle CASE statement precompile error in Micro Focus
- Index(es):
Relevant Pages
|