gpt4 book ai didi

python - 如何反射(reflect)具有 BINARY_DOUBLE 类型列的 oracle 数据库

转载 作者:太空狗 更新时间:2023-10-29 18:09:16 24 4
gpt4 key购买 nike

我试图将现有的 oracle 数据库反射(reflect)到 sqlalchemy 元数据中:

from sqlalchemy import create_engine
from sqlalchemy import MetaData
from sqlalchemy import Table

db_uri = 'oracle://USER:PASS@MYDBTNSNAME'
engine = create_engine(db_uri)

# create a MetaData instance
metadata = MetaData()

# reflect db schema to MetaData
metadata.reflect(bind=engine)

这将返回以下内容:

SAWarning: Did not recognize type 'BINARY_DOUBLE' of column 'column_1'(coltype, colname))

我尝试导入 native 类型以及使用方言 oracle 的类型

from sqlalchemy.types import *
from sqlalchemy.dialects.oracle import *

但它似乎无法识别BINARY_DOUBLE 类型

---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-13-b69d481f6a4e> in <module>()
1 from sqlalchemy.types import *
----> 2 from sqlalchemy.dialects.oracle import *

AttributeError: module 'sqlalchemy.dialects.oracle' has no attribute 'BINARY_DOUBLE'

我正在使用 SQLAlchemy,版本“1.2.1”

最佳答案

您是否尝试过覆盖数据库中的默认映射关系?像这样

from sqlalchemy.dialects.oracle.base import BINARY_DOUBLE

group_table = sa.Table('groups', metadata,
sa.Column('your_column', BINARY_DOUBLE(asdecimal=True)),
autoload=True,
include_columns=[
'your_column',
'...'
],
)

或者只是从sqlalchemy.dialects.oracle.base导入那个BINARY_DOBULE

我会在评论中提出这个问题,但我刚加入不能这样做。

关于python - 如何反射(reflect)具有 BINARY_DOUBLE 类型列的 oracle 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49450396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com