既存システムのOracleDBからデータ読み込んで、帳票を作成したいということがありました。
状況整理
・既存システムはWindowsServer上で動作している
・ubuntu上のDjangoに追加機能として構築する必要がある
・一覧表示、検索機能が必須
・社内イントラネット内のみでの公開
・Oracleのバージョンは12.1
・既存システムDBへはSELECTでの参照のみ
・既存システムDBのER図なし
・既存システムはパッケージソフトをカスタマイズしたソフト
←カスタマイズ元にもう一回カスタマイズを依頼した方が良いのでは?
対応
①そもそもDjangoのバックエンドから、何のAPIも用意されていない外部OracelDBにアクセスすることなんてなかったので、できるか確認
②cx_Oracleで頑張る
③POST時やGET時の動作、URL遷移は頑張る
今回の内容
対応①のどうやってアクセスするかを書き残しておきます。
参考にしたサイトはこちらです。
write ahead log ロールフォワード用 WSLのUbuntuにsqlplus(Oracle client)を入れる
①クライアントをダウンロード
アカウントが必要ですので、ご注意ください。
②alienとlibaio1をインストール
sudo apt -y install alien
sudo apt -y install libaio1
③クライアントをインストール
sudo alien oracle-instantclient12.1-basic-12.1.0.2.0-1.x86_64.rpm
sudo alien oracle-instantclient12.1-devel-12.1.0.2.0-1.x86_64.rpm
sudo alien oracle-instantclient12.1-sqlplus-12.1.0.2.0-1.x86_64.rpm
sudo dpkg -i oracle-instantclient12.1-basic_12.1.0.2.0-2_amd64.deb
sudo dpkg -i oracle-instantclient12.1-devel_12.1.0.2.0-2_amd64.deb
sudo dpkg -i oracle-instantclient12.1-sqlplus_12.1.0.2.0-2_amd64.deb
④プロファイルの設定
プロファイルを開く
sudo nano /profile
下記を書き込む
----------
export LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib
export NLS_LANG=Japanese_Japan.UTF8
export PATH=$PATH:/usr/lib/oracle/12.1/client64/bin
----------
再起動して読み込み
source .profile
⑤prelinkをする
sudo apt-get install prelink
sudo execstack -s /usr/lib/oracle/12.1/client64/bin/sqlplus
エコーで確認
echo $LD_LIBRARY_PATH
下記で出てくればおっけー
/usr/lib/oracle/12.1/client64/lib
⑥本番環境での追加設定
共有ライブラリのパス設定
sudo echo /usr/lib/oracle/12.1/client64/lib > /etc/ld.so.conf.d/oracle.conf
sudo ldconfig
以上です。
これで、DjangoからOracleDB12へ接続できます。
コメント
コメントを投稿