这是我需要的查询:
SELECT * FROM SCHEMA.LOT使用以下Python代码
class Lot(db.Entity):
_table_ = 'SCHEMA.LOT'
lot_key = PrimaryKey(int)
lot_id = Required(str)这是Pony ORM生成的查询:
SELECT "l"."LOT_KEY", "l"."LOT_ID"
FROM "SCHEMA.LOT" "l"这自然会导致ORA-00942: table or view does not exist出错,因为SCHEMA.LOT认为SCHEMA.LOT是完整的表名。我真正需要的是让Pony生成一个模式和表名的组合,这个表名由一个不是字符串一部分的点分隔。因此,下列任何一项都将有效:
"SCHEMA"."LOT"
"SCHEMA".LOT
SCHEMA."LOT"我试图通过将_table_定义为'SCHEMA"."LOT'来欺骗Pony,但它只是自动地将其转换为破损的"SCHEMA"".""LOT"。令人愤怒!
有办法绕过这件事吗?
发布于 2015-07-15 07:08:55
PonyORM这样做是因为点是一个有效的名称符号。
为了指定复合名称,需要将表名定义为字符串列表:
class Lot(db.Entity):
_table_ = ['SCHEMA', 'LOT']
lot_key = PrimaryKey(int)
lot_id = Required(str)https://stackoverflow.com/questions/31419558
复制相似问题