My Oracle Support Banner

DG4ODBC ORA-7445 [HOLEVI_EVAL_ITEM] Running DBMS_HS_PASSTHROUGH package to call a DB2 stored procedure (Doc ID 2397759.1)

Last updated on AUGUST 04, 2018

Applies to:

Oracle Database - Enterprise Edition - Version 12.1.0.2 to 12.2.0.1 [Release 12.1 to 12.2]
Information in this document applies to any platform.

Symptoms

You are using Database Gateway for ODBC (DG4ODBC) from an Oracle 12.1.0.2 version, RDBMS

Running DBMS_HS_PASSTHROUGH package to call a DB2 stored procedure via a DG4ODBC Database Link:

  PROCEDURE load_PROC_OPP(p_input_rec IN OUT PLAN_OPT%ROWTYPE,
  p_sqlcode OUT NUMBER,
  p_sqlerror OUT VARCHAR2)
  IS
  l_cur NUMBER;
  l_num_rows NUMBER;
  l_stmt VARCHAR2 (1000);
  l_out_sqlcode NUMBER;
  l_out_sqlerror VARCHAR2 (1000);
  l_eff_dt VARCHAR2(10);
  l_inactv_dt VARCHAR2(10);
  BEGIN

  -- call stored procedure. enter '?' for each in and out parameter in called procedure

  l_stmt := 'CALL GXXX.GXXXXX22(?,?,?,?,?,?,?,?)';
  l_cur := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@dblink;

  DBMS_HS_PASSTHROUGH.PARSE@dblink (l_cur, l_stmt);

  -- enter for each in and out parameter in called stored procedure
  
  l_eff_dt := TO_CHAR(p_input_rec.EFF_DT,'MM/DD/YYYY');
  l_inactv_dt := TO_CHAR(p_input_rec.INACTV_DT,'MM/DD/YYYY');

  DBMS_HS_PASSTHROUGH.BIND_INOUT_VARIABLE@dblink (l_cur,1,l_out_sqlcode);
  DBMS_HS_PASSTHROUGH.BIND_INOUT_VARIABLE@dblink (l_cur,2,l_out_sqlerror);
  DBMS_HS_PASSTHROUGH.BIND_INOUT_VARIABLE@dblink (l_cur,3,p_input_rec.PLAN_OPT_SEQ_NUM);
  DBMS_HS_PASSTHROUGH.BIND_INOUT_VARIABLE@dblink (l_cur,4,l_eff_dt);
  DBMS_HS_PASSTHROUGH.BIND_INOUT_VARIABLE@dblink (l_cur,5,l_inactv_dt);
  DBMS_HS_PASSTHROUGH.BIND_INOUT_VARIABLE@dblink (l_cur,6,p_input_rec.DESCR);
  DBMS_HS_PASSTHROUGH.BIND_INOUT_VARIABLE@dblink (l_cur,7,p_input_rec.PRODT_OPT_SEQ_NUM);
  DBMS_HS_PASSTHROUGH.BIND_INOUT_VARIABLE@dblink (l_cur,8,p_input_rec.LAST_UPD_USER_ID);

  l_num_rows := DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@dblink (l_cur);

  -- enter for each out parameter in called stored procedure to retrieve value.

  DBMS_HS_PASSTHROUGH.GET_VALUE@dblink (l_cur,1,l_out_sqlcode);
  DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@dblink (l_cur);

  p_sqlcode := l_out_sqlcode;
  p_sqlerror := l_out_sqlerror;
  END load_PROC_OPP;

And getting the below error:

Error: ORA-07445 [holevi_eval_item()+89] [SIGSEGV] [ADDR:0x0] [PC:0xAF0F929] [Address not mapped to object]

Error Stack: ORA-7445[holevi_eval_item]
Main Stack:
 holevi_eval_item       
Current SQL: BEGIN PROCEDURE_PLAN_DATA_UPD_PKG2.case_finalization; END; [TOC00005]

Guided SR: ORA-07445 Error and core dump

Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x7FC7512D4A10] [PC:0xAF0F925, holevi_eval_item()+85] [flags: 0x0, count: 1]
Incident 81138 created, dump file: /orabase/diag/rdbms/udcp/udcp/incident/incdir_81138/udcp_ora_19429_i81138.trc
ORA-07445: exception encountered: core dump [holevi_eval_item()+85] [SIGSEGV] [ADDR:0x7FC7512D4A10] [PC:0xAF0F925] [Address not mapped to object] []

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.