C言語からOracle接続する


Linux C言語からOracleへ接続する方法がないか調べたので自分用にメモして残します。

今使ってるのは…

Pro*Cを使って、接続・CRUD操作しています。
プリコンパイルが必要なくらいで、書き方もわかりやすく作りやすいです。

では何故調べているか

警告オプションを付けるとすごいんです。
出力される量がorz
生成部分の指摘が多く、手が出ません。

また、SQL調整するにもコーディングになるので要件対応や保守になるとメンテナンスが苦しい。(めんどくさい)
SQLを実際に発行して実験してから直す感じになるので、もう少しスマートに作成、調整がしたいんです。

他に知ってるのは?

OCIでコーディングしているのを見た事があります。
使おうと思った時にはインストールされていなかったのもありますが、コーディングがPro*Cに比べてかなり複雑だったのも、引いてしまった理由になります。

では、実際に使える方法は何がある?

まずはグーグル先生に聞いてみました。
そしたらミドルウェアの一覧を掲載しているページがありました。
http://www.doppo1.net/oracle/middleware.html

ここから見るとLinux-C言語で対応できるのは

  • OCI
  • Pro*C
  • ODBC

ODBCを使ったC言語サンプルってのが見たことない。
Oracleで直接いろいろ探したほうが見つかるかも?
ODBCサンプルあるかもしれないし、OCIサンプルのチェックと合わせて
Oracleのページを散策

Oracle Call Interface
https://www.oracle.com/jp/database/technologies/appdev/oci.html

お、これだこれだ。
とページを読んでいくと

「Oracle Database Programming Interface for C (ODPI-C)」
Oracle Database Programming Interface for C (ODPI-C) is a new open source library of C code that simplifies the use of common OCI features for Oracle Database drivers and user applications.

なに?

これは、自分が探している答えなのではないか?

OracleのODPIページ
https://oracle.github.io/odpi/
お、ドキュメント・サンプルがありますね。
インストール手順も書いてある。
ソース?GitHubだと?

oracle/odpi
https://github.com/oracle/odpi
こっちのほうが新しいし!
READMEがOracleのページ内容と同じですね。GitHubだけチェックすればよさそう。

残念ながらODPI-Cを使っている日本語記事は見つからなかったけど
これは十分試す価値がありそうなものを見つけました。

機会を得ることができたら、ODPI-Cで作成してみます