gpt4 book ai didi

python - 如何在 Sqlalchemy 中设置用户定义类型

转载 作者:太空狗 更新时间:2023-10-30 01:57:10 24 4
gpt4 key购买 nike

目前我正在尝试使用 Sqlalchemy 从给定的数据库中检索数据。到现在为止,这对我来说效果很好。但是,现在我必须读出这张表

create table DISPLAYOPTIONS (
DOID integer constraint DO_PK primary key
USING INDEX (create index DO_PK_IX on DISPLAYOPTIONS(DOID) ),
OPT dispopt
);

其中 dispopt 是定义为的自定义类型

CREATE OR REPLACE TYPE DISPOPT AS OBJECT (
LABEL_X varchar2(50),
LABEL_Y varchar2(50),
LABEL_Z varchar2(50)
);

如何在 Sqlalchemy 中定义自定义类型?我在文档中找到 http://docs.sqlalchemy.org/en/rel_0_9/core/types.html#creating-new-types这是正确的起点吗?你知道一些接近我面临的问题的例子吗?

非常感谢,并致以最诚挚的问候,


我现在尝试过的:我在 Stackoverflow 上找到了这个: How do I make compound columns with SQLAlchemy declarative?链接到文档: http://docs.sqlalchemy.org/en/latest/orm/mapper_config.html#composite-column-types

并设置:

class DISPOPT(object):
def __init__(self, LABEL_X, LABEL_Y, LABEL_Z):
self.LABEL_X = LABEL_X
self.LABEL_Y = LABEL_Y
self.LABEL_Z = LABEL_Z

def __composite_values__(self):
return self.LABEL_X, self.LABEL_Y, self.LABEL_Z

class DISPLAYOPTIONS(Base):
__tablename__ = "DISPLAYOPTIONS"

DOID = Column(Integer, primary_key = True)

OPT = composite(
DISPOPT,
Column('LABEL_X', String(50)),
Column('LABEL_Y', String(50)),
Column('LABEL_Z', String(50))
)

但我仍然收到来自数据库的错误消息。

最佳答案

解决方法如下

http://docs.sqlalchemy.org/en/rel_0_9/core/custom_types.html#creating-new-types

或使用 sqlalchemy 中的 UserDefinedType 类的“Essential SQLAlchemy”一书第 65 页。

关于python - 如何在 Sqlalchemy 中设置用户定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25137847/

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