
どうもヒノマルクです。今日から吹き出しアイコンを使ってみました。この画像で作ると中々シュールです (笑) 今日はPythonからOracleデータベースにアクセスしてみようと思います。よろしくお願いします。
> 2022/11/30追記
> 2022/12/11追記
python-oracledbの記事を書きました。

cx_Oracleのインストール
基本的にはOSごとのインストール手順が公式ページ*1に載っているので手順に沿って実行します。
今回はMacOSの手順になります。
Collecting cx_Oracle Downloading cx_Oracle-8.3.0.tar.gz (363 kB) |████████████████████████████████| 363 kB 3.7 MB/s Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Building wheels for collected packages: cx-Oracle Building wheel for cx-Oracle (pyproject.toml) ... done Created wheel for cx-Oracle: filename=cx_Oracle-8.3.0-cp39-cp39-macosx_10_13_x86_64.whl size=189125 sha256=0a6403aa2fe57acb5ef45cbc07fbb228135f4f8777d554740e8c63f321a42c50 Stored in directory: /Users/hinomaruc/Library/Caches/pip/wheels/c4/a8/38/5910c0425c80979bade466c4a0e498c8ccb7dea7cfd172494f Successfully built cx-Oracle Installing collected packages: cx-Oracle Successfully installed cx-Oracle-8.3.0
成功しました。
Oracle Instant Clientのインストール
Oracleデータベースにアクセスするためのツールです。
Mac用はこちらからダウンロードできます。
Oracle Instant Clientダウンロードページ
ヒノマルクはとりあえずは軽量版でいいかなと思い、 Basic Light Package (ZIP)をダウンロードしました。
DMG版でもZIP版でもどちらでも問題ないです。
実業務ではSQL*PLUSも使うので、SQL*Plus Package (ZIP)を追加することも多いです。
ヒノマルクが以前構築したOracleデータベースのバージョンは21.3ですが、使用に問題はありません。
オラクルのサーバーとクライアントの各バージョンのサポート対応表*2はオラクル社にて提供されていますので、ご興味ある方は確認ください。
cx_Oracleを使ってみる
ここまででやっとMacでcx_Oracleを使用する準備が整いました。
Oracle Instant Clientはcx_Oracleのライブラリを読み込んだ後にインストール場所をコードで指定して利用するようです。解凍もしくはインストールした場所を覚えておきましょう。
※ LinuxだとLD_LIBRARY_PATHやORACLE_HOMEの環境変数でOracle Instant Clientの場所を指定すれば、コード上で明示的に指定しなくても動作します。
'8.3.0'
(19, 8, 0, 0, 0)
1件取得を試す
.Cursor on .Connection to SYSTEM :1521 >>
('LOGMNRGGC_GTLO',)
全件取得を試す
.Cursor on .Connection to SYSTEM :1521 >>
('LOGMNRGGC_GTLO',) ('LOGMNRGGC_GTCS',) ('LOGMNR_PARAMETER$',) ('LOGMNR_SESSION$',) ・・・省略・・・ ('LOGMNRP_CTAS_PART_MAP',) ('LOGMNR_SHARD_TS',) ('LOGSTDBY$APPLY_PROGRESS',)
参照元
*2 https://support.oracle.com/knowledge/Oracle%20Database%20Products/207303_1.html