




<!DOCTYPE html>
<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>airflow.hooks.oracle_hook &mdash; Airflow Documentation</title>
  

  
  
  
  

  
  <script type="text/javascript" src="../../../../_static/js/modernizr.min.js"></script>
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../../../../" src="../../../../_static/documentation_options.js"></script>
        <script type="text/javascript" src="../../../../_static/jquery.js"></script>
        <script type="text/javascript" src="../../../../_static/underscore.js"></script>
        <script type="text/javascript" src="../../../../_static/doctools.js"></script>
        <script type="text/javascript" src="../../../../_static/language_data.js"></script>
    
    <script type="text/javascript" src="../../../../_static/js/theme.js"></script>

    

  
  <link rel="stylesheet" href="../../../../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../../../../_static/pygments.css" type="text/css" />
    <link rel="index" title="Index" href="../../../../genindex.html" />
    <link rel="search" title="Search" href="../../../../search.html" />
    <link rel="next" title="airflow.hooks.pig_hook" href="../pig_hook/index.html" />
    <link rel="prev" title="airflow.hooks.mysql_hook" href="../mysql_hook/index.html" />
   
  <script>
    document.addEventListener('DOMContentLoaded', function() {
      var el = document.getElementById('changelog');
      if (el !== null ) {
        // [AIRFLOW-...]
        el.innerHTML = el.innerHTML.replace(
            /\[(AIRFLOW-[\d]+)\]/g,
            `<a href="https://issues.apache.org/jira/browse/$1">[$1]</a>`
        );
        // (#...)
        el.innerHTML = el.innerHTML.replace(
            /\(#([\d]+)\)/g,
            `<a href="https://github.com/apache/airflow/pull/$1">(#$1)</a>`
        );
      };
    })
  </script>
<!-- Matomo -->
<script>
  var _paq = window._paq = window._paq || [];
  _paq.push(['disableCookies']);
  _paq.push(['trackPageView']);
  _paq.push(['enableLinkTracking']);
  (function() {
    var u="https://analytics.apache.org/";
    _paq.push(['setTrackerUrl', u+'matomo.php']);
    _paq.push(['setSiteId', '13']);
    var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
    g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
  })();
</script>
<!-- End Matomo -->
  <style>
    .example-header {
      position: relative;
      background: #9AAA7A;
      padding: 8px 16px;
      margin-bottom: 0;
    }
    .example-header--with-button {
      padding-right: 166px;
    }
    .example-header:after{
      content: '';
      display: table;
      clear: both;
    }
    .example-title {
      display:block;
      padding: 4px;
      margin-right: 16px;
      color: white;
      overflow-x: auto;
    }
    .example-header-button {
      top: 8px;
      right: 16px;
      position: absolute;
    }
    .example-header + .highlight-python {
      margin-top: 0 !important;
    }
    .viewcode-button {
      display: inline-block;
      padding: 8px 16px;
      border: 0;
      margin: 0;
      outline: 0;
      border-radius: 2px;
      -webkit-box-shadow: 0 3px 5px 0 rgba(0,0,0,.3);
      box-shadow: 0 3px 6px 0 rgba(0,0,0,.3);
      color: #404040;
      background-color: #e7e7e7;
      cursor: pointer;
      font-size: 16px;
      font-weight: 500;
      line-height: 1;
      text-decoration: none;
      text-overflow: ellipsis;
      overflow: hidden;
      text-transform: uppercase;
      -webkit-transition: background-color .2s;
      transition: background-color .2s;
      vertical-align: middle;
      white-space: nowrap;
    }
    .viewcode-button:visited {
      color: #404040;
    }
    .viewcode-button:hover, .viewcode-button:focus {
      color: #404040;
      background-color: #d6d6d6;
    }
  </style>

</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="../../../../index.html" class="icon icon-home"> Airflow
          

          
          </a>

          
            
            
              <div class="version">
                1.10.5
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../../project.html">Project</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../license.html">License</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../start.html">Quick Start</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../installation.html">Installation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../tutorial.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../howto/index.html">How-to Guides</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../ui.html">UI / Screenshots</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../profiling.html">Data Profiling</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../cli.html">Command Line Interface Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../scheduler.html">Scheduling &amp; Triggers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../plugins.html">Plugins</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../security.html">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../timezone.html">Time zones</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../api.html">REST API Reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../integration.html">Integration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../metrics.html">Metrics</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../kubernetes.html">Kubernetes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../lineage.html">Lineage</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../changelog.html">Changelog</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../faq.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../../macros.html">Macros reference</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../../index.html">Python API Reference</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../../index.html#operators">Operators</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../../../index.html#hooks">Hooks</a><ul class="current">
<li class="toctree-l3 current"><a class="reference internal" href="../../../index.html#hooks-packages">Hooks packages</a><ul class="current">
<li class="toctree-l4 current"><a class="reference internal" href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.hooks</span></code></a></li>
<li class="toctree-l4"><a class="reference internal" href="../../contrib/hooks/index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.contrib.hooks</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../index.html#executors">Executors</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../index.html#models">Models</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../index.html#core-and-community-package">Core and community package</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../../privacy_notice.html">Privacy Notice</a></li>
</ul>

            
          
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../../../index.html">Airflow</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../../../../index.html">Docs</a> &raquo;</li>
        
          <li><a href="../../../index.html">Python API Reference</a> &raquo;</li>
        
          <li><a href="../index.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.hooks</span></code></a> &raquo;</li>
        
      <li><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.hooks.oracle_hook</span></code></li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            <a href="../../../../_sources/_api/airflow/hooks/oracle_hook/index.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="module-airflow.hooks.oracle_hook">
<span id="airflow-hooks-oracle-hook"></span><h1><a class="reference internal" href="#module-airflow.hooks.oracle_hook" title="airflow.hooks.oracle_hook"><code class="xref py py-mod docutils literal notranslate"><span class="pre">airflow.hooks.oracle_hook</span></code></a><a class="headerlink" href="#module-airflow.hooks.oracle_hook" title="Permalink to this headline">¶</a></h1>
<div class="section" id="module-contents">
<h2>Module Contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2>
<dl class="class">
<dt id="airflow.hooks.oracle_hook.OracleHook">
<em class="property">class </em><code class="sig-prename descclassname">airflow.hooks.oracle_hook.</code><code class="sig-name descname">OracleHook</code><a class="reference internal" href="../../../../_modules/airflow/hooks/oracle_hook.html#OracleHook"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#airflow.hooks.oracle_hook.OracleHook" title="Permalink to this definition">¶</a></dt>
<dd><p>Bases: <a class="reference internal" href="../dbapi_hook/index.html#airflow.hooks.dbapi_hook.DbApiHook" title="airflow.hooks.dbapi_hook.DbApiHook"><code class="xref py py-class docutils literal notranslate"><span class="pre">airflow.hooks.dbapi_hook.DbApiHook</span></code></a></p>
<p>Interact with Oracle SQL.</p>
<dl class="attribute">
<dt id="airflow.hooks.oracle_hook.OracleHook.conn_name_attr">
<code class="sig-name descname">conn_name_attr</code><em class="property"> = oracle_conn_id</em><a class="reference internal" href="../../../../_modules/airflow/hooks/oracle_hook.html#OracleHook.conn_name_attr"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#airflow.hooks.oracle_hook.OracleHook.conn_name_attr" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="airflow.hooks.oracle_hook.OracleHook.default_conn_name">
<code class="sig-name descname">default_conn_name</code><em class="property"> = oracle_default</em><a class="reference internal" href="../../../../_modules/airflow/hooks/oracle_hook.html#OracleHook.default_conn_name"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#airflow.hooks.oracle_hook.OracleHook.default_conn_name" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="attribute">
<dt id="airflow.hooks.oracle_hook.OracleHook.supports_autocommit">
<code class="sig-name descname">supports_autocommit</code><em class="property"> = False</em><a class="reference internal" href="../../../../_modules/airflow/hooks/oracle_hook.html#OracleHook.supports_autocommit"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#airflow.hooks.oracle_hook.OracleHook.supports_autocommit" title="Permalink to this definition">¶</a></dt>
<dd></dd></dl>

<dl class="method">
<dt id="airflow.hooks.oracle_hook.OracleHook.get_conn">
<code class="sig-name descname">get_conn</code><span class="sig-paren">(</span><em class="sig-param">self</em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/hooks/oracle_hook.html#OracleHook.get_conn"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#airflow.hooks.oracle_hook.OracleHook.get_conn" title="Permalink to this definition">¶</a></dt>
<dd><p>Returns a oracle connection object
Optional parameters for using a custom DSN connection
(instead of using a server alias from tnsnames.ora)
The dsn (data source name) is the TNS entry
(from the Oracle names server or tnsnames.ora file)
or is a string like the one returned from makedsn().</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>dsn</strong> – the host address for the Oracle server</p></li>
<li><p><strong>service_name</strong> – the db_unique_name of the database
that you are connecting to (CONNECT_DATA part of TNS)</p></li>
</ul>
</dd>
</dl>
<p>You can set these parameters in the extra fields of your connection
as in <code class="docutils literal notranslate"><span class="pre">{</span> <span class="pre">&quot;dsn&quot;:&quot;some.host.address&quot;</span> <span class="pre">,</span> <span class="pre">&quot;service_name&quot;:&quot;some.service.name&quot;</span> <span class="pre">}</span></code>
see more param detail in
<a class="reference external" href="https://cx-oracle.readthedocs.io/en/latest/module.html#cx_Oracle.connect">cx_Oracle.connect</a></p>
</dd></dl>

<dl class="method">
<dt id="airflow.hooks.oracle_hook.OracleHook.insert_rows">
<code class="sig-name descname">insert_rows</code><span class="sig-paren">(</span><em class="sig-param">self</em>, <em class="sig-param">table</em>, <em class="sig-param">rows</em>, <em class="sig-param">target_fields=None</em>, <em class="sig-param">commit_every=1000</em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/hooks/oracle_hook.html#OracleHook.insert_rows"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#airflow.hooks.oracle_hook.OracleHook.insert_rows" title="Permalink to this definition">¶</a></dt>
<dd><p>A generic way to insert a set of tuples into a table,
the whole set of inserts is treated as one transaction
Changes from standard DbApiHook implementation:</p>
<ul class="simple">
<li><p>Oracle SQL queries in cx_Oracle can not be terminated with a semicolon (<cite>;</cite>)</p></li>
<li><p>Replace NaN values with NULL using <cite>numpy.nan_to_num</cite> (not using
<cite>is_nan()</cite> because of input types error for strings)</p></li>
<li><p>Coerce datetime cells to Oracle DATETIME format during insert</p></li>
</ul>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>table</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.7)"><em>str</em></a>) – target Oracle table, use dot notation to target a
specific database</p></li>
<li><p><strong>rows</strong> (<em>iterable of tuples</em>) – the rows to insert into the table</p></li>
<li><p><strong>target_fields</strong> (<em>iterable of str</em>) – the names of the columns to fill in the table</p></li>
<li><p><strong>commit_every</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.7)"><em>int</em></a>) – the maximum number of rows to insert in one transaction
Default 1000, Set greater than 0.
Set 1 to insert each row in each single transaction</p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="method">
<dt id="airflow.hooks.oracle_hook.OracleHook.bulk_insert_rows">
<code class="sig-name descname">bulk_insert_rows</code><span class="sig-paren">(</span><em class="sig-param">self</em>, <em class="sig-param">table</em>, <em class="sig-param">rows</em>, <em class="sig-param">target_fields=None</em>, <em class="sig-param">commit_every=5000</em><span class="sig-paren">)</span><a class="reference internal" href="../../../../_modules/airflow/hooks/oracle_hook.html#OracleHook.bulk_insert_rows"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#airflow.hooks.oracle_hook.OracleHook.bulk_insert_rows" title="Permalink to this definition">¶</a></dt>
<dd><p>A performant bulk insert for cx_Oracle
that uses prepared statements via <cite>executemany()</cite>.
For best performance, pass in <cite>rows</cite> as an iterator.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>table</strong> (<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#str" title="(in Python v3.7)"><em>str</em></a>) – target Oracle table, use dot notation to target a
specific database</p></li>
<li><p><strong>rows</strong> (<em>iterable of tuples</em>) – the rows to insert into the table</p></li>
<li><p><strong>target_fields</strong> (<em>iterable of str Or None</em>) – the names of the columns to fill in the table, default None.
If None, each rows should have some order as table columns name</p></li>
<li><p><strong>commit_every</strong> (<a class="reference external" href="https://docs.python.org/3/library/functions.html#int" title="(in Python v3.7)"><em>int</em></a>) – the maximum number of rows to insert in one transaction
Default 5000. Set greater than 0. Set 1 to insert each row in each transaction</p></li>
</ul>
</dd>
</dl>
</dd></dl>

</dd></dl>

</div>
</div>


           </div>
           
          </div>
          

<footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="../pig_hook/index.html" class="btn btn-neutral float-right" title="airflow.hooks.pig_hook" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="../mysql_hook/index.html" class="btn btn-neutral float-left" title="airflow.hooks.mysql_hook" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>

    </p>
  </div>
  Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.


</footer>

        </div>
      </div>

    </section>

  </div>
  


  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>
