首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Pony ORM中使用Oracle架构名称?

如何在Pony ORM中使用Oracle架构名称?
EN

Stack Overflow用户
提问于 2015-07-15 00:25:55
回答 1查看 627关注 0票数 2

这是我需要的查询:

代码语言:javascript
复制
SELECT * FROM SCHEMA.LOT

使用以下Python代码

代码语言:javascript
复制
class Lot(db.Entity):
    _table_ = 'SCHEMA.LOT'
    lot_key = PrimaryKey(int)
    lot_id = Required(str)

这是Pony ORM生成的查询:

代码语言:javascript
复制
SELECT "l"."LOT_KEY", "l"."LOT_ID"
FROM "SCHEMA.LOT" "l"

这自然会导致ORA-00942: table or view does not exist出错,因为SCHEMA.LOT认为SCHEMA.LOT是完整的表名。我真正需要的是让Pony生成一个模式和表名的组合,这个表名由一个不是字符串一部分的点分隔。因此,下列任何一项都将有效:

代码语言:javascript
复制
"SCHEMA"."LOT"
"SCHEMA".LOT
SCHEMA."LOT"

我试图通过将_table_定义为'SCHEMA"."LOT'来欺骗Pony,但它只是自动地将其转换为破损的"SCHEMA"".""LOT"。令人愤怒!

有办法绕过这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-15 07:08:55

PonyORM这样做是因为点是一个有效的名称符号。

为了指定复合名称,需要将表名定义为字符串列表:

代码语言:javascript
复制
class Lot(db.Entity):
    _table_ = ['SCHEMA', 'LOT']
    lot_key = PrimaryKey(int)
    lot_id = Required(str)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31419558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档