Today Oracle released node-oracledb 1.0, the Node.js add-on to enable high
performance Oracle Database applications.
Node-oracledb is available from npmjs.com and GitHub.
Each month or so, since our first code bundle was pushed to GitHub
earlier this year, we released a node-oracledb update with new
functionality. The adoption has been exciting, with important
applications already in production. This is our eighth release of
node-oracledb and promises to be our best received so far.
The node-oracledb 1.0 add-on for Node.js supports standard and advanced features:
Oracle enhances, maintains and supports node-oracledb via open
source channels (i.e. GitHub), similar to Oracle Database drivers for
other open source languages. The add-on is under the Apache 2.0
Where to get node-oracledb
The Oracle Technology Network Node.js Developer Center has all the links and information you
need to start using node-oracledb.
To jump start, follow these instructions to install node-oracledb.
Changes since the previous release
The major changes in node-oracledb 1.0 since the previous release are:
The Stream interface for CLOB and BLOB types was implemented,
adding support for LOB queries, inserts, and PL/SQL LOB bind variables. As
well as being needed for working with many legacy schemas, having LOB
support lets application developers use Oracle Database 126.96.36.199's
JSON data type without running into the length limitation of VARCHAR2
Customers have been contacting me what seems like every day,
asking when LOB support would be available, and pleading for early
access. Here it is, and it looks great. We'll be continuing to run
load tests, benchmark it, and to enhance it.
To see how to use LOBs with node-oracledb, checkout the
node-oracledb Lob documentation and LOB examples
General information about Oracle Database JSON support can be found
in the documentation or on the JSON team blog.
Oracledb.fetchAsString and a new
fetchInfo to allow
numbers, dates, and ROWIDs to be fetched as strings. These
features, available at the application level (for dates and numbers),
and per-statement level (for dates, numbers and ROWIDs), can help
Added support for binding DATE, TIMESTAMP, and TIMESTAMP WITH
LOCAL TIME ZONE as
DATE to DML RETURNING (aka RETURNING
type. You can also bind these types as
The internal Oracle client character set is now always set to
AL32UTF8. There's no longer a need to set it externally via
NLS_LANG. A related bug with multibyte data reported by users was
fixed by correcting the allocation of some internal buffers. Overall
the NLS experience is much more consistent.
The test suite's and example database credentials can now be
set via environment variables. A small change to help testing in
automatically provisioned environments. Our test suite already has
great coverage numbers, and will continue to be enhanced in future
Bug fixes to node-oracledb. These are listed
in the CHANGELOG.
Being an open source project in a dynamically changing environment,
our statement of direction has been a brief, flexible goal: We are
actively working on supporting Oracle Database features, and on
functionality requests from users involved in the project. Our
priority list is re-evaluated for each point release.
So now we have version 1.0, what next? This is just the start.
There are plenty of important and interesting tasks in front of us.
We will begin with a review of the project, from our development
processes, the driver functionality, right through to distribution.
This review will determine our next tasks. Hearing from users is
crucial for prioritization, so don't hesitate to comment at GitHub.
Node.js is undergoing a surge of change at the moment, with the
io.js re-merger, and the formation of the Node.js Foundation. As the
merged Node.js code base stabilizes and the Foundation's LTS plans
solidify, we will be able to be more formal about node-oracledb's
schedule. We will work with Node.js and with partners to bring you
the best experience. (On a technical note, the V2 release of the
compatibility layer NAN was made in the last few days, too late for us
to incorporate in node-oracledb 1.0. So, support of the latest,
bleeding edge io.js will be in a future node-oracledb version.)
Let me wrap up this announcement by appreciating the growing
node-oracledb community, particularly those who have contributed to
node-oracledb with code, suggestions and discussions.