airflow.hooks.oracle_hook¶
Module Contents¶
- 
class airflow.hooks.oracle_hook.OracleHook[source]¶
- Bases: - airflow.hooks.dbapi_hook.DbApiHook- Interact with Oracle SQL. - 
get_conn(self)[source]¶
- 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(). - Parameters
- dsn – the host address for the Oracle server 
- service_name – the db_unique_name of the database that you are connecting to (CONNECT_DATA part of TNS) 
 
 - You can set these parameters in the extra fields of your connection as in - { "dsn":"some.host.address" , "service_name":"some.service.name" }see more param detail in cx_Oracle.connect
 - 
insert_rows(self, table, rows, target_fields=None, commit_every=1000)[source]¶
- 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: - Oracle SQL queries in cx_Oracle can not be terminated with a semicolon (;) 
- Replace NaN values with NULL using numpy.nan_to_num (not using is_nan() because of input types error for strings) 
- Coerce datetime cells to Oracle DATETIME format during insert 
 - Parameters
- table (str) – target Oracle table, use dot notation to target a specific database 
- rows (iterable of tuples) – the rows to insert into the table 
- target_fields (iterable of str) – the names of the columns to fill in the table 
- commit_every (int) – 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 
 
 
 - 
bulk_insert_rows(self, table, rows, target_fields=None, commit_every=5000)[source]¶
- A performant bulk insert for cx_Oracle that uses prepared statements via executemany(). For best performance, pass in rows as an iterator. - Parameters
- table (str) – target Oracle table, use dot notation to target a specific database 
- rows (iterable of tuples) – the rows to insert into the table 
- target_fields (iterable of str Or None) – the names of the columns to fill in the table, default None. If None, each rows should have some order as table columns name 
- commit_every (int) – 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 
 
 
 
-