Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> ORA-01036 and Pro*COBOL

ORA-01036 and Pro*COBOL

From: John Croucher <croucherjm_at_hotmail.com>
Date: 20 Jul 2001 13:05:52 -0700
Message-ID: <72aae841.0107201205.7a07d7cf@posting.google.com>

Platform: IBM/390 2.7 (MVS)
COBOL 370
Oracle 8.0.4.4.0
Pro*Cobol Release 1.8.26.0.0
Precompiler parms:

  LNA=/DD/SYSOUT 
  ONA=/DD/SYSPUNCH 
  INA=/DD/SYSIN 

  ASACC=YES
  MODE=ANSI
  DEFINE=CICS
  LITDELIM=APOST
  SQLCHECK=SEMANTICS
Error code: 00000103O
Error message: ORA-01036: illegal variable name/number

Hi Group,
I am trying a execute a COBOL program with embedded SQL. Please note that I can get the program and all of its sub-programs to compile cleanly. However, when I execute the program, I receive error messages of ORA-01036. I have determined that the errors are generated when the following statments is executed:

 exec sql                            
     select count(*)                 
     into :query-size                
     from   dprog                    
     where  dprog = :ws-dprog and    
            instidq = :ws-instidq and
            instid = :ws-instid and  
            instcd = :ws-instcd and  
            lyt >= :ws-catlyt and    
            dpfyt <= :ws-catlyt      

 end-exec.

exec sql

    select instcd, dprog, lyt, dpfyt, dptitle1, dptitle2,

           dpcips, dpmask, dpstatus

    into   :dpq-instcd, :dpq-dprog, :dpq-lyt, :dpq-fyt,  
           :dpq-dptitle-1 :indic-var,                    
           :dpq-dptitle-2 :indic-var,                    
           :dpq-cips :indic-var,                         
           :dpq-dpmask :indic-var,                       
           :dpq-status :indic-var                        
    from   dprog                                         
    where  dprog = :ws-dprog and                         
           instidq = :ws-instidq and                     
           instid = :ws-instid and                       
           instcd = :ws-instcd and                       
           lyt >= :ws-catlyt and
           dpfyt <= :ws-catlyt 

 end-exec.

I don't know how much help it will be, but I have pasted a copy of the program below. Also, when the program executes, the count returns zero. Any help you can provide on this would be greatly appericiated. Thank you,
John C.
Athens, OH

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

      *
       WORKING-STORAGE SECTION.

      ******************************************************************
      **                                                             

**
** local variables
**
**
**
****************************************************************** exec sql include sqlca end-exec. * exec sql include conparms end-exec. exec sql include degsqldd end-exec. exec sql begin declare section end-exec. 01 i pic s9(4) comp value +0. 01 ws-instidq pic x(2) value spaces. 01 ws-instid pic x(8) value spaces. 01 ws-dpkey. 05 ws-instcd pic x(3) value spaces. 05 ws-dprog pic x(15) value spaces. 05 ws-catlyt pic x(6) value spaces. ** 2/22/01 added field to capture size for count 01 query-size pic S9(4) comp value 0. **** the junk-data values hold data not required by dars **** but required by informix so an order by clause can be used 01 junk-data. 05 junk-idq pic x(2) value spaces. 05 junk-id pic x(8) value spaces. 05 junk-cd pic x(3) value spaces. 05 junk-dprog pic x(15) value spaces. 05 junk-fyt pic x(6) value spaces. 05 junk-seq-no pic s9(9) comp value 0. 01 indic-var pic s9(4) comp value 0. **** The previous variable is used as an indicator variable in select **** statements for null column processing. 01 hold-element. 05 hold-rname pic x(9) value spaces. 05 hold-grp1 pic x value spaces. 05 hold-grp2 pic x value spaces. 05 hold-orflg pic x value spaces. 05 hold-optflg pic x value spaces. 05 hold-sumgrp pic x value spaces. 05 hold-crlink pic x value spaces. 05 hold-altcflg pic x value spaces. 05 hold-sortflg pic x value spaces. 05 hold-extend pic x value spaces. 05 hold-calcgrp pic x value spaces. 05 hold-calcflg pic x value spaces. exec sql end declare section end-exec. LINKAGE SECTION. copy "comstrls". copy "deguwmdd". copy "dumvardd". ****************************************************************** PROCEDURE DIVISION USING COM-TABLE DP CLIENT-DEFINED-FIELD-1 CLIENT-DEFINED-FIELD-2 CLIENT-DEFINED-FIELD-3 CLIENT-DEFINED-FIELD-4 CLIENT-DEFINED-FIELD-5. ****************************************************************** **
**
** readdp-routine:
**
**
**
**
**
READDP-ROUTINE. **
**
move "READDP" to err-module. exec sql include sqlinit end-exec. if COM-TEST = "X" display "READDP: Attempting to find: " COM-DPKEY display function current-date end-if. move spaces to DP-SQL. move 0 to i DPQ-SEGCT. move -1 to COM-DARETCD. perform read-dprog thru read-dprog-exit. move 1 to COM-DARETCD. move DP-SQL to DP. compute DP-SEGCT = DPQ-SEGCT. if COM-TEST = "X" display "SELECTDP EXIT " COM-DARETCD " DPKEY: " DPQ-KEY " FYT: " DPQ-FYT display function current-date end-if. jmc GOBACK. ****************************************************************** /***************************************************************** **
**
**
**
**

**

jmc *internal-subroutines section.

      **
**

      **
**

      **
**



       read-dprog.
            move COM-DPKEY to ws-dpkey.
            move COM-INSTIDQ to ws-instidq.
            move COM-INSTID to ws-instid.

            if COM-TEST = "X"
               display "Read-dprog key: " ws-dpkey.

      * 2/22/01 added code to check how many programs and stop proc.
jmc         exec sql
jmc             select count(*)
jmc             into :query-size
jmc             from   dprog
jmc             where  dprog = :ws-dprog and
jmc                    instidq = :ws-instidq and
jmc                    instid = :ws-instid and
jmc                    instcd = :ws-instcd and
jmc                    lyt >= :ws-catlyt and
jmc                    dpfyt <= :ws-catlyt
jmc         end-exec.
jmc
jmc         display "   READDP: query-size: " query-size.

            if query-size > 1
               compute COM-DARETCD = -1
               move "U" to COM-COMPLETE
               move "More than one program for catlyt" to COM-UMESS
               if COM-TEST = "X"
                  display "Multiple programs found for catlyt"
               end-if
              go to read-dprog-exit
            end-if.

jmc         DISPLAY "   READDP: SELECT DPROG"

            move "SELECT DPROG" to err-location.

            exec sql
                select instcd, dprog, lyt, dpfyt, dptitle1, dptitle2,
                       dpcips, dpmask, dpstatus
                into   :DPQ-INSTCD, :DPQ-DPROG, :DPQ-LYT, :DPQ-FYT,
                       :DPQ-DPTITLE-1 :indic-var,
                       :DPQ-DPTITLE-2 :indic-var,
                       :DPQ-CIPS :indic-var,
                       :DPQ-DPMASK :indic-var,
                       :DPQ-STATUS :indic-var
                from   dprog
                where  dprog = :ws-dprog and
                       instidq = :ws-instidq and
                       instid = :ws-instid and
                       instcd = :ws-instcd and
                       lyt >= :ws-catlyt and
                       dpfyt <= :ws-catlyt
            end-exec.

            if sqlcode not = 100
               perform read-dp-req thru read-dp-req-exit.

       read-dprog-exit.
           exit.

      ******************************************************************
       read-dp-req.

           move "DECLARE CSR_DP_REQ" to err-location.
           exec sql
                declare csr_dp_req cursor for
                select  dprname, grp1, grp2, orflg,
                        optflg, sumgrp, crlink, altcflg,
                        sortflg, extend, calcgrp, calcflg,
                        instidq, instid, instcd, dpfyt, dprog,
                        user_seq_no
                from    dprog_req
                where   dprog = :DPQ-DPROG and
                        instidq = :ws-instidq and
                        instid = :ws-instid and
                        instcd = :DPQ-INSTCD and
                        dpfyt = :DPQ-FYT
                order by dprog, instidq, instid, instcd, dpfyt,
                        user_seq_no

            end-exec.

            move "OPEN CSR_DP_REQ" to err-location.
            exec sql
                open csr_dp_req
            end-exec.

            perform fetch-dp thru fetch-dp-exit until sqlcode = 100.

            move "CLOSE CSR_DP_REQ" to err-location.
            exec sql
               close csr_dp_req
            end-exec.

       read-dp-req-exit.
            exit.
      ******************************************************************
       fetch-dp.

            move "FETCH CSR_DP_REQ" to err-location.
            add 1 to i.
            move spaces to hold-element.
            exec sql
                 fetch csr_dp_req into :hold-rname   :indic-var,
                                       :hold-grp1    :indic-var,
                                       :hold-grp2    :indic-var,
                                       :hold-orflg   :indic-var,
                                       :hold-optflg  :indic-var,
                                       :hold-sumgrp  :indic-var,
                                       :hold-crlink  :indic-var,
                                       :hold-altcflg :indic-var,
                                       :hold-sortflg :indic-var,
                                       :hold-extend  :indic-var,
                                       :hold-calcgrp :indic-var,
                                       :hold-calcflg :indic-var,
                                       :junk-idq,
                                       :junk-id,
                                       :junk-cd,
                                       :junk-fyt,
                                       :junk-dprog,
                                       :junk-seq-no
            end-exec.

            if sqlcode = 0
      ** 1-25-01 added code to prevent going over 80 occurences
               if DPQ-SEGCT = 80
                 if COM-TEST = "X"
                   display "INSTCD: " DPQ-INSTCD " DPROG: " DPQ-DPROG
                           " FYT: " DPQ-FYT " OVER REQ'T LIMIT OF 80"
                 end-if
                 string DPQ-INSTCD
                        " "
                        DPQ-DPROG
                        " "
                        DPQ-FYT
                        " OVER REQ'T LIMIT OF 80"
                        delimited by size
                        into COM-UMESS
                 MOVE "U" TO COM-COMPLETE
                 COMPUTE COM-DARETCD = -1
                 move 100 to sqlcode
                 go to fetch-dp-exit
               end-if
               add 1 to DPQ-SEGCT
               move hold-element to dpq-v-element(dpq-segct)
               if COM-TEST = "X"
                  display "DPQ-SEGCT: " DPQ-SEGCT
                          DPQ-V-ELEMENT(DPQ-SEGCT)
               end-if
            end-if.

       fetch-dp-exit.
           exit.
      ******************************************************************

       copy "sqlerror".
Received on Fri Jul 20 2001 - 15:05:52 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US