Coder Social home page Coder Social logo

2329408386 / cx_oracle_async Goto Github PK

View Code? Open in Web Editor NEW

This project forked from goodmanwen/cx_oracle_async

0.0 1.0 0.0 18 KB

A very simple asynchronous wrapper that makes you can access to Oracle in asyncio programs.

License: MIT License

Python 100.00%

cx_oracle_async's Introduction

cx_Oracle_async

fury licence pyversions Publish Build

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

cx_oracle_async's People

Contributors

goodmanwen avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.