我有一个Oracle 11g数据库,我用SQLAlchemy 0.9.7查询,我的数据库有一个表调用网关,它有一个名为id_gateway的主键列区分大小写,所以我必须像这样手动查询:
SELECT "id_gateway" FROM gateway;
我有这个问题:
psp_data = query(
default_forma_pago_web.id_gateway,
psp_config.merchant_id,
psp_config.merchant_id_sc,
psp_config.email
).join(
psp_config,
psp_config.id_productora == default_forma_pago_web.id_productora
).join(
gateway,
gateway.id_gateway == default_forma_pago_web.id_gateway
).filter(
default_forma_pago_web.id_productora == self.productora,
default_forma_pago_web.id_forma_pago == self.medio_de_pago,
default_forma_pago_web.cuotas == self.cuotas
)
编辑,因为我选择了错误的查询。
我收到了这个错误:
*** sqlalchemy.exc.DatabaseError: (DatabaseError) ORA-00904: "GATEWAY"."ID_GATEWAY": invalid identifier
这是表的架构:
class Gateway(Base):
__tablename__ = u'gateway'
id_gateway = Column(String(6), primary_key=True)
url_produccion = Column(String(255), nullable=False)
url_implementacion = Column(String(255))
lang_es = Column(String(5))
lang_en = Column(String(5))
t_psp_config = Table(
u'psp_config', metadata,
Column(u'id', String(20), primary_key=True),
Column(u'id_productora', ForeignKey(u'productora.id_productora'), nullable=False),
Column(u'merchant_id', String(20)),
Column(u'email', String(255)),
Column(u'merchant_id_sc', String(20)),
Column(u'id_gateway', String(6)),
Column(u'debug', Numeric(1, 0, False)),
Column(u'moneda', String(10)),
Column(u'pais', String(20))
)
class DefaultFormaPagoWeb(Base):
__tablename__ = u'default_forma_pago_web'
__table_args__ = (
ForeignKeyConstraint(
[u'id_gateway', u'id_forma_pago'],
[u'forma_pago_x_gateway.id_gateway', u'forma_pago_x_gateway.id_forma_pago']
),
)
id_forma_pago_web = Column(Numeric(scale=0, asdecimal=False), primary_key=True, nullable=False)
id_productora = Column(ForeignKey(u'productora.id_productora'), primary_key=True, nullable=False)
id_forma_pago = Column(String(20), primary_key=True, nullable=False)
id_gateway = Column(String(20), primary_key=True, nullable=False)
cuotas = Column(Numeric(scale=0, asdecimal=False), primary_key=True, nullable=False)
diferencial = Column(Numeric(8, 2))
es_porcentual = Column(Numeric(1, 0, False))
forma_pago_x_gateway = relationship(u'FormaPagoXGateway')
productora = relationship(u'Productora')
如何将此表与区分大小写的列连接?