cx-Oracle-async 0.3.3

Creator: bradpython12

Last updated:

Add to Cart

Description:

cxOracleasync 0.3.3

cx_Oracle_async







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())

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.