class_docstr: Executes stored procedure in a specific Oracle database.
  
  :param procedure: name of stored procedure to call (templated)
  :param oracle_conn_id: The :ref:`Oracle connection id <howto/connection:oracle>`
      reference to a specific Oracle database.
  :param parameters: (optional, templated) the parameters provided in the call
  
  If *do_xcom_push* is *True*, the numeric exit code emitted by
  the database is pushed to XCom under key ``ORA`` in case of failure.
code: def execute(self, context: Context):
      self.log.info("Executing: %s", self.procedure)
      hook = OracleHook(oracle_conn_id=self.oracle_conn_id)
      try:
          return hook.callproc(
              self.procedure,
              autocommit=True,
              parameters=self.parameters,
          )
      except oracledb.DatabaseError as e:
          if not self.do_xcom_push or not context:
              raise
          ti = context["ti"]
          code_match = re.search("^ORA-(\\d+):.+", str(e))
          if code_match:
              ti.xcom_push(key="ORA", value=code_match.group(1))
          raise
  
file_path: airflow/airflow/providers/oracle/operators/oracle.py
imports: from __future__ import annotations
  import re
  import warnings
  from typing import TYPE_CHECKING, Sequence
  import oracledb
  from airflow.exceptions import AirflowProviderDeprecationWarning
  from airflow.models import BaseOperator
  from airflow.providers.common.sql.operators.sql import SQLExecuteQueryOperator
  from airflow.providers.oracle.hooks.oracle import OracleHook
label_desc: Use image node_id 2 for calling the OracleStoredProcedureOperator obj's underlying member method code with example usage: obj.execute(context) and returns: hook