0
я могу войти на свой оракул, например, используя sqlplus
с:Запросы по Oracle Schema-х в cx_Oracle
$ env | grep -E '(TWO|SID)'
TWO_TASK=TEST
$ sqlplus me/[email protected]
И тогда я могу выполнить следующий запрос без проблем:
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;
Однако, в моем питона код, используя 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
Я уверен, что мое соединение отлично, как и другие запросы работают нормально.
Почему вы полагаете, что это имеет какое-либо отношение к таблицам, существующим в другой схеме? У вас есть точка с запятой в конце инструкции, которая не является частью оператора SQL (это один из способов сказать SQL * Plus, что вы закончили ввод инструкции SQL). Я также не могу понять, почему у вас три символа двойной кавычки в начале и конце строки - почему бы просто не использовать один символ одной кавычки, чтобы разграничить строку так же, как вы делаете со всеми остальными строками вашего кода ? –
3 символа двойной кавычки довольно стандартны для многострочных строк Python @Justin. Проблема заключается в том, что вы описываете полуколону. – Ben
спасибо, Джастин, да - просто глупая опечатка! – yee379