Изменить набор сеансов CONTAINER с помощью CX_OraclePython

Программы на Python
Ответить
Anonymous
 Изменить набор сеансов CONTAINER с помощью CX_Oracle

Сообщение Anonymous »

Теперь я использую cx_oracle с Python для выполнения операторов Oracle. У меня есть Oracle CDB и PDB. Мне нужно выполнить этот оператор из CDB в PDB (MYPDB)

Код: Выделить всё

ALTER SESSION SET CONTAINER=MYPDB;
SELECT (SELECT instance_name FROM v$instance) as CDB_NAME,
(SELECT SYS_CONTEXT('USERENV', 'CON_NAME') FROM dual) as PDB_NAME ,
a.owner ,a.table_name ,a.column_name ,b.comments
FROM dba_tab_columns a
LEFT JOIN dba_col_comments b
ON a.owner = b.owner AND a.table_name = b.table_name AND a.column_name = b.column_name
WHERE a.OWNER
LIKE 'USR_%'
ORDER BY a.owner, a.table_name, a.column_name ASC
Это работает в sql Developer, но не в cx_oracle. Мой сценарий:

Код: Выделить всё

conn = cx_Oracle.connect(user=self.user, password=self.password, dsn=self.connection_string)

cursor = conn.cursor()

cursor.execute("""alter session set CONTAINER=PB24
SELECT a.owner, a.table_name, b.comments FROM dba_tables a LEFT JOIN dba_tab_comments b ON a.owner = b.owner AND a.table_name = b.table_name WHERE a.OWNER LIKE 'USR_%' ORDER BY a.owner, a.table_name ASC;
""")
и возвращаем ORA-00922: отсутствующий или неверный параметр
Версия Python: 3.10.14
Версия Oracle: 18g
cx_version: последняя версия 8

Подробнее здесь: https://stackoverflow.com/questions/784 ... -cx-oracle
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»