A very simple asynchronous wrapper that makes you can access to Oracle in asyncio programs. - GoodManWEN/cx_Oracle_async
Project description
cx_Oracle_async
A very simple asynchronous wrapper that makes you can access to Oracle 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.)
Install
pip install cx_Oracle_async
Usage
- Nearly all the same with aiomysql (with very limited functions of cource)
- No automaticly date format transition built-in.
Example
# all_usages.py
import asyncio
import cx_Oracle_async
async def main():
loop = asyncio.get_running_loop()
oracle_pool = await cx_Oracle_async.create_pool(
host='localhost',
port='1521',
user='user',
password='password',
db='orcl',
loop=loop,
autocommit=False, # this option has no use.
minsize = 2,
maxsize = 4,
)
async with oracle_pool.acquire() as connection:
async with connection.cursor() as cursor:
# single fetch
sql_1 = "SELECT * FROM SCOTT.DEPT WHERE deptno = :a"
await cursor.execute(sql_1 , (10 , ))
print(await cursor.fetchone())
# multiple inert
sql_2 = "INSERT INTO SCOTT.DEPT(deptno , dname) VALUES (:a , :b)"
sql_2_data = [
[60 , "Hello"],
[70 , "World"],
]
await cursor.executemany(sql_2 , sql_2_data)
await connection.commit()
# multiple fetch
sql_3 = "SELECT * FROM SCOTT.DEPT WHERE deptno >= :a"
await cursor.execute(sql_3 , (60 , ))
print(await cursor.fetchall())
if __name__ == '__main__':
asyncio.run(main())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cx_Oracle_async-0.1.2.tar.gz
(4.2 kB
view hashes)
Built Distribution
Close
Hashes for cx_Oracle_async-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d6b3851c5c5f5b8f419cd7b7e753bac9d9c789d53aaad0e4f294dc4f2a6ce47 |
|
MD5 | cba53326972dae47397ef0dee22075bb |
|
BLAKE2b-256 | 6cd276bf006d4ea9fb7880046e15d9fae34d396a9d1dd9c4d832a4dac022453f |