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 -> Re: Embedded PL/SQL Procedure in Pro*C

Re: Embedded PL/SQL Procedure in Pro*C

From: <NeedaHoliday>
Date: Tue, 09 Nov 1999 17:06:35 GMT
Message-ID: <382a544d.71926080@news.pwgsc.gc.ca>


I made a minor mistake on the post. Please include the following prior to the "void update_rvn_exp_ind()"

 void update_inv_err()
 {
 strcpy(proc_label, "Start update_inv_err ");  debug_listing();

  EXEC SQL WHENEVER NOT FOUND GOTO end_update_inv_err;   EXEC SQL UPDATE INVPERIOD

           SET INV_PER_STAT_CD = 'ERR',
                  LAST_UPD_DT     = SYSDATE
           WHERE INV_PER       = :inv_per
		AND FK_PRJ_ID  = :prj_id          
		AND BATCH_NO   = :batch_no;
 

  end_update_inv_err:
  EXEC SQL COMMIT;   strcpy(proc_label, "End update_inv_err ");   debug_listing();
 }

On Tue, 09 Nov 1999 17:01:25 GMT, NeedaHoliday wrote:

>I am trying to call a procedure from the Pro*C module. I get an error
>that logic is falling through the Pro*C and giving me invalid labels.
>
>"main.c", line 2732: undefined label: end_update_inv_err
>
>Can someone please help me.
>
>The code goes as follows;
>
> void update_rvn_exp_ind()
> {
> strcpy(proc_label, "Start update_rvn_exp_ind ");
> debug_listing();
>
>
> EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error main.pc
>update_rvn_exp_ind()--\n");
> EXEC SQL EXECUTE
> BEGIN
> sp_rvn_exp_ind(:prj_id,:inv_per,:batch_no);
> END;
>
> END-EXEC;
> strcpy(proc_label, "End update_rvn_exp_ind ");
> debug_listing();
> }
>/********************************************/
>/* Call sub function update_inv_per */
>/* to update last_inv_per in the custprd */
>/* table */
>/********************************************/
>
> void update_inv_per()
> {
> strcpy(proc_label, "Start update_inv_per ");
> debug_listing();
>
> EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error main.pc
>update_inv_per()--\n");
> EXEC SQL WHENEVER NOT FOUND goto end_update_inv_per;
> EXEC SQL UPDATE
> CUSTPRD
> SET
> LAST_INVCD_PER = :inv_per
> WHERE
> CUSTPRD.INV_SRL_NO in
> (SELECT DISTINCT
> CUSTATCH.FK_INV_SRL_NO
> FROM
> CUSTATCH, INVPERIOD
> WHERE
> INVPERIOD.INV_PER = :inv_per
>AND
> INVPERIOD.FK_PRJ_ID = TO_NUMBER(:prj_id)
>AND
> INVPERIOD.INV_PER_STAT_CD != 'ERR'
>AND
> INVPERIOD.BATCH_NO = TO_NUMBER(:batch_no)
>AND
> CUSTATCH.FK_INV_PER = INVPERIOD.INV_PER
>AND
> CUSTATCH.FK_PRJ_ID = INVPERIOD.FK_PRJ_ID
>AND
> CUSTATCH.FK_CUST_ID = INVPERIOD.FK_CUST_ID);
>
>
> end_update_inv_per:
> EXEC SQL COMMIT;
>
> strcpy(proc_label, "End update_inv_per ");
> debug_listing();
> }
Received on Tue Nov 09 1999 - 11:06:35 CST

Original text of this message

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