0

PRO*C で VARCHAR2 変数の出力を取得する必要があります。この変数は、Oracle プロシージャから取得されます。これは事です:

これでうまくいき、

bzero(d_fecha_ejecucion.arr,20); 
 EXEC SQL SELECT
 TO_CHAR(SYSDATE,'dd-mon-yy hh24:mi:ss') INTO :d_fecha_ejecucion FROM
 DUAL;           
 sprintf(c_msg,"--->FECHA EJECUCIÓN: [%s]",(char *)d_fecha_ejecucion.arr);

しかし、次のようなプロシージャから変数 (VARCHAR SV_desc_error) を取得しようとすると:

 EXEC SQL EXECUTE
 BEGIN
 PACKAGE.PROCEDURE_PR(:SN_num_ev, :SN_cod_msjerror,:SV_desc_error);
 END;
END-EXEC;

bzero(SV_desc_error.arr,4000);
SV_desc_error.len = (unsigned short)strlen((char *)SV_desc_error.arr);

sprintf(c_msg,"--->Out PACKAGE.PROCEDURE_PR(SN_num_ev: [%d],SN_cod_msjerror: [%d],SV_desc_error: [%s])",SN_num_evento,SN_cod_msjerror,(char *)SV_desc_error.arr);

動作しません...変数は空を返します

私は匿名ブロックでテストし、動作します...

では、誰がこの変数を取得できますか? 感謝。

4

1 に答える 1