Node-oracledb 6.6 brings more vector and configuration capabilities to support Oracle Database 23ai
Release announcement: A new release of node-oracledb, the Node.js and TypeScript module for accessing Oracle Database, is available from npm.
Continuing with the theme of the previous release, node-oracledb 6.6 brings further support to the latest Oracle Database 23ai features like BINARY Vectors and Centralized Configuration Providers. It also introduces support for Oracle’s BFILE datatype, Two-Phase Commits (in Thin mode) and in-memory wallets for authentication.
Another good news is that the macOS ARM64 binaries are now available with node-oracledb, thanks to the availability of macOS ARM64 Instant Client.
BINARY Vector support
BINARY Vector is the latest addition to Oracle Database 23ai Vector types. With the new BINARY vector format, the value of each vector dimension can be represented as a single bit (0 or 1). Node-oracledb 6.6 supports the BINARY vector format in both Thin and Thick modes.
Centralized Configuration Providers Support
Centralized Configuration Providers enable users to centrally store and manage the configuration information of their application in a single location on the cloud. They enable users to isolate the configuration settings from their application code.
With node-oracledb 6.6, users can now retrieve configuration information from two cloud-based Centralized Configuration Providers — Microsoft Azure App Configuration and Oracle Cloud Infrastructure (OCI) Object Storage and connect to Oracle Database.
Two-Phase Commit Support in Thin Mode
In distributed transaction processing involving altering data on multiple Oracle Databases, the two-phase commit mechanism ensures that the entire transaction commits, or the entire transaction rolls back.
Node-oracledb Thin mode now supports Two-Phase Commits. This support was already available in Thick mode.
BFILE Support
BFILEs are data objects stored in operating system files, outside the database tablespaces. BFILEs are read-only data types. The database allows read-only byte stream access to data stored in BFILEs. Users cannot write to or update the contents of a BFILE from within their application. BFILEs are fetched as LOBs in node-oracledb.
The new lob.fileExists()
method checks if the file specified by the LOB exists in the directory alias or not. The new synchronous methods, lob.getDirFileName()
and lob.setDirFileName()
are used to get and set the directory alias and file name of the BFILE LOB object, respectively.
Other Features and Updates
A very useful feature in node-oracledb 6.6 is the support of ‘in-memory’ wallets. In this case, the user does not need to point to a wallet location to get the wallet contents for authentication. They can directly specify the security credentials in the walletContent
property of oracledb.createPool() and oracledb.getConnection().
Node-oracledb now can also connect to Oracle Database using tnsnames.ora files that contain IFILE
directives.
Last, but not by any means least, we have fixed multiple internal and external issues raised by our GitHub users.
See the latest Release Notes for all the changes.
Installing or Upgrading node-oracledb
You can install or upgrade node-oracledb by updating your package.json requirements:
"dependencies": {
"oracledb": "^6.6"
},
Resources
- Node-oracledb installation instructions are here.
- Node-oracledb documentation is here.
- Node-oracledb change log is here.
- Issues and questions about node-oracledb can be posted on GitHub or Slack (link to join Slack).
- Follow us on Twitter or Facebook.
Finally, contributions to node-oracledb are more than welcome, see CONTRIBUTING.