Это вопрос, что мне нужно:Как использовать имена схем Oracle в Pony ORM?
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
, потому что Oracle считает, что полное имя таблицы соответствует SCHEMA.LOT
. Мне действительно нужно, чтобы Pony ORM создавал комбинацию схемы и имя таблицы, разделенное точкой, которая не является частью строки. Таким образом, любой из следующих будет работать:
"SCHEMA"."LOT"
"SCHEMA".LOT
SCHEMA."LOT"
Я пытался обмануть Пони ОРМ, определив _table_
как 'SCHEMA"."LOT'
, но он просто автоматически преобразует это в разбитой "SCHEMA"".""LOT"
. Бешенство!
Есть ли способ обойти это?
Это именно то, что мне было нужно. Спасибо, Александр. Есть ли для этого документация? Теперь, когда я знаю, что искать, я нашел еще один вопрос GitHub с этим ответом; но я не могу найти это документально нигде. – Vijchti