目前我正在尝试使用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))
)
但我仍然收到数据库中的错误消息。
答案 0 :(得分:2)
解决方案是遵循
http://docs.sqlalchemy.org/en/rel_0_9/core/custom_types.html#creating-new-types
使用sqlalchemy中的UserDefinedType
类或“Essential SQLAlchemy”一书。