【ログ】SQLAlchemyでOracleのPDBに接続する

※この記事はQrunchログからの移行記事です。

PDBはサービス名として記述する。SIDと異なり"/"区切りでは受け付けてくれないのでDSN形式で記述する。以下のようにcx_Oracleの関数を利用するとよい。

また、新しい(Oracle18以降?)の場合はmax_identifier_lengthを明示的に設定する。

import sqlalchemy
import cx_Oracle

dsnStr = cx_Oracle.makedsn('localhost','1521','pdb-name')
connect_str = 'oracle://user:pass@' + dsnStr.replace('SID', 'SERVICE_NAME')
engine = sqlalchemy.create_engine(connect_str, max_identifier_length=128)