All Projects → GoodManWEN → cx_Oracle_async

GoodManWEN / cx_Oracle_async

Licence: MIT License
A very simple asynchronous wrapper that allows you to get access to the Oracle database in asyncio programs.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to cx Oracle async

drift-server
Drift server
Stars: ✭ 19 (-40.62%)
Mutual labels:  oracle-database
oracle-jdbc-tester
A simple command line Java application to test JDBC connection to Oracle database
Stars: ✭ 37 (+15.63%)
Mutual labels:  oracle-database
docker-apex-stack
Utility scripts for creating an Oracle Application Express stack as a Docker container.
Stars: ✭ 67 (+109.38%)
Mutual labels:  oracle-database
jamdb oracle
Oracle Database driver for Erlang
Stars: ✭ 89 (+178.13%)
Mutual labels:  oracle-database
oracleMonitor
plsql script to monitor Oracle Databases. 监控脚本 运维有力助手
Stars: ✭ 30 (-6.25%)
Mutual labels:  oracle-database
liferay-portal-oracledb-support
Liferay Portal 7 Community Edition Oracle Database Support ** NO LONGER MAINTAINED **. Refer to this repository: https://github.com/amusarra/liferay-portal-database-all-in-one-support
Stars: ✭ 13 (-59.37%)
Mutual labels:  oracle-database
Oracle.jl
Oracle Database driver for the Julia language.
Stars: ✭ 32 (+0%)
Mutual labels:  oracle-database
Oracle-Pentesting-Reference
Oracle Database Penetration Testing Reference (10g/11g)
Stars: ✭ 34 (+6.25%)
Mutual labels:  oracle-database
oracle-database-operator
The Oracle Database Operator for Kubernetes (a.k.a. OraOperator) helps developers, DBAs, DevOps and GitOps teams reduce the time and complexity of deploying and managing Oracle Databases. It eliminates the dependency on a human operator or administrator for the majority of database operations.
Stars: ✭ 74 (+131.25%)
Mutual labels:  oracle-database
plsql-cop-sqldev
db* CODECOP for SQL Developer
Stars: ✭ 18 (-43.75%)
Mutual labels:  oracle-database
ercole-agent
Proactive Software Asset Management. Agent component
Stars: ✭ 24 (-25%)
Mutual labels:  oracle-database
simple-ddl-parser
Simple DDL Parser to parse SQL (HQL, TSQL, AWS Redshift, BigQuery, Snowflake and other dialects) ddl files to json/python dict with full information about columns: types, defaults, primary keys, etc. & table properties, types, domains, etc.
Stars: ✭ 76 (+137.5%)
Mutual labels:  oracle-database
utPLSQL-SQLDeveloper
Extension for running unit tests straight from SQL Developer
Stars: ✭ 45 (+40.63%)
Mutual labels:  oracle-database
soda-for-java
SODA (Simple Oracle Document Access) for Java is an Oracle library for writing Java apps that work with JSON (and not only JSON!) in the Oracle Database. SODA allows your Java app to use the Oracle Database as a NoSQL document store.
Stars: ✭ 61 (+90.63%)
Mutual labels:  oracle-database
Capgemini-ADAPT-2020
All Solutions for Capgemini 2020-2021 ADAPT Program, use it for your reference after you have tried the problems by yourself THANK YOU!
Stars: ✭ 37 (+15.63%)
Mutual labels:  oracle-database
plscope-utils
Utilities for PL/Scope in Oracle Database
Stars: ✭ 29 (-9.37%)
Mutual labels:  oracle-database
okcli
An Oracle-DB command line client
Stars: ✭ 47 (+46.88%)
Mutual labels:  oracle-database
travis-oracle
Scripts to install Oracle Database Express Edition on Travis CI
Stars: ✭ 44 (+37.5%)
Mutual labels:  oracle-database
oracdc
Oracle database CDC (Change Data Capture)
Stars: ✭ 51 (+59.38%)
Mutual labels:  oracle-database
OpenLogReplicator
Open Source Oracle database CDC written purely in C++. Reads transactions directly from database redo log files and streams in JSON or Protobuf format to: Kafka, RocketMQ, flat file, network stream (plain TCP/IP or ZeroMQ)
Stars: ✭ 112 (+250%)
Mutual labels:  oracle-database

cx_Oracle_async

fury licence pyversions Publish Build Docs Visitors

A very simple asynchronous wrapper that allows you to get access to the Oracle database in asyncio programs.

Easy to use , buy may not the best practice for efficiency concern.

Requirements

  • cx_Oracle >= 8.1.0 (Take into consideration that author of cx_Oracle said he's trying to implement asyncio support , APIs maybe change in future version. Switch to 8.1.0 if there's something wrong makes it not gonna work.)
  • ThreadPoolExecutorPlus >= 0.2.0

Install

pip install cx_Oracle_async

Feature

  • Nearly all the same as aiomysql in asynchronous operational approach , with limited cx_Oracle feature support.
  • No automaticly date format transition built-in.
  • AQ feature added , check docs here for further information.
  • You can modify some of the connection properties simply like you're using cx_Oracle.
  • You can do basic insert / select / delete etc.
  • If you're connecting to database which is on a different machine from python process , you need to install oracle client module in order to use this library. Check cx-Oracle's installation guide for further information.

Documentation

https://cx_oracle_async.readthedocs.io

Performance

query type asynchronous multithreading synchronous multithreading synchronous single thread
fast single line query 6259.80 q/s 28906.93 q/s 14805.61 q/s
single line insertion 1341.88 q/s 1898 q/s 1685.17 q/s

/* Test platform: */
AMD Ryzen 3700x
Windows 10 LTSC
Oracle 19c
You can find performance test codes here.

Examples

Before running examples , make sure you've already installed a Oracle Client on your machine.

# basic_usages.py
import asyncio
import cx_Oracle_async

async def main():
    oracle_pool = await cx_Oracle_async.create_pool(
        host='localhost', 
        port='1521',
        user='user', 
        password='password',
        service_name='orcl', 
        min = 2,
        max = 4,
    )

    async with oracle_pool.acquire() as connection:
        async with connection.cursor() as cursor:
            await cursor.execute("SELECT * FROM V$SESSION")
            print(await cursor.fetchall())

    await oracle_pool.close()

if __name__ == '__main__':
    asyncio.run(main())
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].