2013/05/13

node で Oracle に接続する

Oracle接続

Windowsにて、nodeでOracle 11gに接続し、値を取得したい。

結論

node-odbcで動いた。

事前準備

  • python
  • node-gyp

    • gyp: Generate Your Projects
    • Google Chromeのためのビルドシステム
    • pythonで書かれている
    • node-gyp: gypによるビルドファイルの生成からコンパイルまで行える
  • python2.7をインストール後、node-gypをglobalオプション付きでインストール
    npm install -g node-gyp

node-odbcインストール

npm install node-odbc

node-gypのbuildで3箇所警告が出たが、一応インストールは成功した。

動作確認

とりあえず、単純なselect文を投げて結果を取得してみる

  • app.js
/*
 * oracle test
 */

var odbc = require("odbc");

var db = new odbc.Database();
var cs = "DSN=<DataSourceName>;UID=<UserName>;PWD=<Password>";
db.open(cs, function(err){
    var sql = "select foo, bar from HOGE order by foo";
    db.query(sql, function(err, rows, rs){
        //console.log(rows);
        var i=0;
        for (i=0; i<rows.length; i++) {
            console.log([
                i,
                rows[i]["foo"],
                rows[i]["bar"]
            ].join(", "));
        }

        db.close(function(){
            console.log("close.");
        });
    });
});

試行錯誤の経緯

試したmodule

  • node-oracle

    • 上手くインストールできない。コンパイルで失敗する。
    • node-gypで、-zオプションの使い方がおかしいといったエラー。
  • node-db-oracle

    • node-wafを使用しており、コンパイルで失敗する。
  • node-odp

    • インストールはできるが、うまく動かない。
    • module内にバイナリファイル nodeodp.node があるが、これがx64用?

0 件のコメント:

コメントを投稿