PythonからOracleに接続しようとして、思った以上にハマったのでメモとして残します。
特に初心者だと気づきにくいポイントが2つありました。
① Pythonが64bitならOracle Clientも64bit必須
これはかなり重要です。
Pythonが64bit版の場合、インストールするOracle Clientも必ず64bit版である必要があります。
ここがズレているとどうなるかというと…
- 接続できない
- エラー内容が分かりにくい
- 原因特定に時間がかかる
と、かなり厄介です。
② tnsnames.oraは「コメントなし」を使う
これも地味にハマるポイントです。
通常、tnsnames.ora にはコメントが含まれていることが多いですが、
Python(特に一部のOracle接続ライブラリ)では、コメントが原因で正しく読み込めないことがあります。
NG例(コメントあり)
# 接続定義
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
OK例(コメント削除)
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
ポイント:
#や余計な空行は削除する- シンプルな構成にする
まとめ
今回のハマりポイントはこの2つでした。
- Pythonが64bitならOracle Clientも64bitにする
tnsnames.oraはコメントなしのシンプル版を使う
Oracle接続は環境依存が強く、
「ちょっとした違い」で動かなくなることが多いです。
同じところでハマる人が減れば嬉しいです。
The following two tabs change content below.
ストレスフリー
うつ病の子育て中の金融系システムエンジニアです。
名もなき家事、目的のない仕事、見えない不自由、チリツモストレスを見つけ出して、設備投資、システム化、見える化により、解決します。
習い事で、ドラムをしていました。
最新記事 by ストレスフリー (全て見る)
- Excelしか知らない人へ:VLOOKUP・XLOOKUPで頑張っているなら、DataFrameを使わないと正直もったいない - 2026-03-20
- PythonでOracle接続にハマった話(64bit問題とtnsnames.oraの落とし穴) - 2026-03-20
- Android Studio Panda 2(2025.3.2)をインストールしてみた - 2026-03-20
