Запросы по схеме Oracle в cx_Oracle
Я могу войти в свой экземпляр Oracle, используя sqlplus
с:
$ env | grep -E '(TWO|SID)'
TWO_TASK=TEST
$ sqlplus me/my_password@TEST
И тогда я могу выполнить следующий запрос без проблем:
select
persons.person.key AS id,
persons.person.lname as lastname,
persons.person.fname as firstname,
sid.organizations.org_code as org,
sid.organizations.division_code as division,
sid.organizations.directorate_code as directorate,
persons.person.status as status
from
persons.person,
sid.organizations
where
persons.person.dept_id=sid.organizations.org_id;
Тем не менее, в моем коде Python, используя cx_Oracle
со следующим кодом (т. е. идентичный запрос):
def get_oracle( user, password, tns='TEST' ):
db = cx_Oracle.connect( user, password, tns )
cursor = db.cursor()
return cursor
db = get_oracle( 'me', 'my_pass' )
db.execute("""
select
persons.person.key AS id,
persons.person.lname as lastname,
persons.person.fname as firstname,
sid.organizations.org_code as org,
sid.organizations.division_code as division,
sid.organizations.directorate_code as directorate,
persons.person.status as status
from
persons.person,
sid.organizations
where
persons.person.dept_id=sid.organizations.org_id;
""")
for r in db:
pass
Результаты получают следующую ошибку:
cx_Oracle.DatabaseError: ORA-00911: invalid character
Я почти уверен, что с моим соединением все в порядке, так как другие запросы работают нормально.
1 ответ
Чтобы ответить на мой собственный вопрос, это глупая опечатка с точкой с запятой в конце запроса!