Я использую модуль node-oracle со следующим кодом (из документации по node-oracle):
var oracle = require("oracle");
oracle.connect({ "hostname": "192.168.1.120/orcl", "user": "USER", "password": "PASS" }, function(err, connection) {
if(err){ console.log("Connect err:" + err); }
if(connection){ console.log("Connection:" + connection); }
// selecting rows
connection.execute("SELECT nickname FROM users WHERE nickname = :1", ['luc'], function(err, results) {
console.log("execution");
console.log("RESULTS:" + results);
console.log("Err:" + err);
});
connection.setAutoCommit(true);
connection.commit(function(err) {
console.log("commiting");
// transaction committed
});
connection.rollback(function(err) {
console.log("rollback");
// transaction rolledback
});
connection.close(); // call this when you are done with the connection
});
Это дает мне разные сообщения об ошибках:
$ node test_node_oracle.js
Connection:[object Connection]
rollback
commiting
execution
RESULTS:undefined
Err:Error: ORA-24324: service handle not initialized
Иногда это также дает:
$ node test_node_oracle.js
Connection:[object Connection]
Segmentation fault
или также:
$ node test_node_oracle.js
Connection:[object Connection]
commiting
rollback
execution
RESULTS:undefined
Err:Error: ORA-32102: invalid OCI handle
sqlplus доступ работает нормально, хотя:
$ sqlplus USER/PASS@192.168.1.120/orcl
SQL * Plus: выпуск 11.2.0.3.0, производство в понедельник, 12 марта 15:18:18 2012
Copyright (c) 1982, 2011, Oracle. Все права защищены.
Подключено к:
Oracle Database 11g Enterprise Edition, выпуск 11.2.0.1.0 - Производство
С опциями Partitioning, OLAP, Data Mining и Real Application Testing
SQL>