:py:mod:`airflow.providers.oracle.operators.oracle`
===================================================

.. py:module:: airflow.providers.oracle.operators.oracle


Module Contents
---------------

Classes
~~~~~~~

.. autoapisummary::

   airflow.providers.oracle.operators.oracle.OracleOperator
   airflow.providers.oracle.operators.oracle.OracleStoredProcedureOperator




.. py:class:: OracleOperator(*, sql, oracle_conn_id = 'oracle_default', parameters = None, autocommit = False, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   Executes sql code in a specific Oracle database.

   :param sql: the sql code to be executed. Can receive a str representing a sql statement,
       a list of str (sql statements), or reference to a template file.
       Template reference are recognized by str ending in '.sql'
       (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 to render the SQL query with.
   :param autocommit: if True, each command is automatically committed.
       (default value: False)

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['parameters', 'sql']

      

   .. py:attribute:: template_ext
      :annotation: :Sequence[str] = ['.sql']

      

   .. py:attribute:: template_fields_renderers
      

      

   .. py:attribute:: ui_color
      :annotation: = #ededed

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



.. py:class:: OracleStoredProcedureOperator(*, procedure, oracle_conn_id = 'oracle_default', parameters = None, **kwargs)

   Bases: :py:obj:`airflow.models.BaseOperator`

   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

   .. py:attribute:: template_fields
      :annotation: :Sequence[str] = ['parameters', 'procedure']

      

   .. py:attribute:: ui_color
      :annotation: = #ededed

      

   .. py:method:: execute(self, context)

      This is the main method to derive when creating an operator.
      Context is the same dictionary used as when rendering jinja templates.

      Refer to get_template_context for more context.



