File: //opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/__pycache__/oracle.cpython-310.pyc
o
�N�g^ � @ s� d Z ddlZddlZddlmZ e�e�ZzddlZej ej
d�ZdZW n e
y4 ddd�ZdZY nw d Zd
d� Zdd
� Zdd� Zdd� Zeded�dd� �Zdd� Zeded�dd� �Zeded�dd� �Zd dd�Zdd� ZdS )!a�
Oracle DataBase connection module
:maintainer: Vladimir Bormotov <bormotov@gmail.com>
:maturity: new
:depends: cx_Oracle
:platform: all
:configuration: module provide connections for multiple Oracle DB instances.
**OS Environment**
.. code-block:: yaml
ORACLE_HOME: path to oracle product
PATH: path to Oracle Client libs need to be in PATH
**pillar**
.. code-block:: yaml
oracle:
dbs:
<db>:
uri: connection credentials in format:
user/password@host[:port]/sid[ servicename as {sysdba|sysoper}]
optional keyword servicename will determine whether it is a sid or service_name
<db>:
uri: .....
� N)�depends)ZsysdbaZsysoperT� � F�oraclec C s t rtS dS )z1
Load module only if cx_Oracle installed
)FzDoracle execution module not loaded: python oracle library not found.)�
HAS_CX_ORACLE�__virtualname__� r r �G/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/oracle.py�__virtual__6 s r
c C s dS )z
Fallback function stub
zDNeed "cx_Oracle" and Oracle Client installed for this function existr r r r r �_cx_oracle_reqB s r c C s, |t jt jt jt jfv r| �t|| j�S dS )z�
Return strings values as python unicode string
http://www.oracle.com/technetwork/articles/dsl/tuininga-cx-oracle-084866.html
N)� cx_Oracle�STRINGZLONG_STRINGZ
FIXED_CHARZCLOB�var�strZ arraysize)�cursor�nameZdefault_type�sizeZ precisionZscaler r r �_unicode_outputI s ��r c C s | � dd�}t|�dkr|\}}t| }n|d }d}d}|�d�\}}|�d�\}}|�d�\} }
d|
v rAd }|
�d�d �� }
| �d
�}t|�dkrQ|\}}
n|d }d}
t�d||||
|
|f� d
tjd<