Skip to main content

Oracle 对象映射。

项目描述

Oracle 对象映射

要求

  • Python 3.7+

安装

pip install oracle-object-mapping

例子

类型定义

import datetime
from typing import Optional

from oracle_object_mapping import objects, fields


class TABLE_VARCHARS(objects.Collection[str]):
    pass


class TABLE_CLOBS(objects.Collection[str]):
    package = 'LIBRARY'
    database_type = fields.CLOB()


class BOOK(objects.Object):
    package = 'LIBRARY'
    ID: Optional[int]
    TITLE: Optional[str]
    AUTHORS: Optional[TABLE_VARCHARS]
    DEDICATION: Optional[str] = fields.CLOB()
    PAGES: Optional[TABLE_CLOBS]
    PUBLISH_DATE: Optional[datetime.datetime]

操作对象

data = ["a" * x for x in range(10)]

table_a = TABLE_VARCHARS()
for x in data:
    table_a.append(x)

table_b = TABLE_VARCHARS.from_data(data)

# table_a == table_b
book_a = BOOK()
book_a.TITLE = 'Hello'
book_a.AUTHORS = TABLE_VARCHARS.from_data(['Alberto', 'José'])

# ba.to_data() == {'TITLE': 'HELLO', 'AUTHORS': ['Alberto', 'José']}

data = {'TITLE': 'HELLO', 'AUTHORS': ['Alberto', 'José']}
book_b = BOOK.from_data(data)

# book_a == book_b

调用函数

from oracle_object_mapping import utils

connection: cx_Oracle.connection
name = 'LIBRARY.CREATE_BOOK'
return_type = BOOK
new_book = utils.call_function(connection, name, return_type, args=[book_a])
print(new_book.ID)

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

oracle-object-mapping-1.0.0.dev2.tar.gz (6.4 kB 查看哈希

已上传 source

内置分布

oracle_object_mapping-1.0.0.dev2-py3-none-any.whl (7.5 kB 查看哈希

已上传 py3