The directory in node-oracledb's Github repository contains a lot of node-oracledb examples. Documentation is here.
To run the examples:
-
Review
dbconfig.js.
In your terminal window or IDE, set the following environment variables to
provide credentials for the dbconfig.js file.
-
NODE_ORACLEDB_USERmust be set to the database user. -
NODE_ORACLEDB_PASSWORDmust be set to the database password. -
NODE_ORACLEDB_CONNECTIONSTRINGmust be set to the connection string that points to your database's location. -
NODE_ORACLEDB_EXTERNALAUTHprovides the options for enabling external authentication. Setting this environment variable to "true" will enable external authentication. To ensure external authentication works, firstly make sure the Oracle external authentication service is correctly configured. See Documentation for External Authentication for details. -
NODE_ORACLEDB_DRIVER_MODEprovides an option to set the 'Thin' or 'Thick' modes of node-oracledb. Setting this environment variable to "thick" will enable Thick mode. Setting it to "thin" will retain the Thin mode. The default mode is Thin. -
NODE_ORACLEDB_WALLET_LOCATIONmust be set to the local directory name for the wallets that may be required for mutual TLS (mTLS) connections, especially to Oracle Cloud Autonomous Databases optionally. The wallet location can also be provided as a part of the database connect string. -
NODE_ORACLEDB_WALLET_PASSWORDmust set to the password for the wallets that may be required for mutual TLS (mTLS) connections, especially to Oracle Cloud Autonomous Databases. -
NODE_ORACLEDB_CLIENT_LIB_DIRprovides an optional path for the Oracle Client libraries to be used on Windows and macOS platforms, when using Thick mode in node-oracledb.
Review the examples and then run them individually. For example, to see what
the file example.js does, navigate to the examples directory and use:
node example.js
After running the examples, the demonstration objects can be dropped with
demodrop.js:
node demodrop.js
You can run the examples from anywhere by providing the full or relative path
with the node command.
Many examples can be run in either node-oracledb Thin (the default) or Thick
modes. Thin mode is a pure JavaScript implementation of node-oracledb.
Setting the environment variable NODE_ORACLEDB_DRIVER_MODE to 'thick' will
make examples use Thick mode.
If this is your first time with node-oracledb, start with
example.js.
| File Name | Description |
|---|---|
appcontext.js |
Shows how to set application context for connections. |
aqmulti.js |
Oracle Advanced Queuing (AQ) example passing multiple messages |
aqobject.js |
Oracle Advanced Queuing (AQ) example passing an Oracle Database object |
aqoptions.js |
Oracle Advanced Queuing (AQ) example setting options and message attributes |
aqraw.js |
Basic Oracle Advanced Queuing (AQ) example passing text messages |
aqutil.js |
Common file to setup user credentials for all the Advanced Queuing (AQ) examples. |
azuretokenauth.js |
Shows connection pooling with Azure token based authentication |
azureConfigProvider.js |
Shows how to connect to Oracle Database using Azure Configuration Provider |
azurecloudnativetoken.js |
Shows how to connect to Oracle Database with cloud native token based authentication using Azure SDK |
blobhttp.js |
Simple web app that streams an image |
calltimeout.js |
Shows how to cancel a SQL statement if it doesn't complete in a specified time |
connect.js |
Basic example for creating a standalone (non-pooled) connection |
connectionpool.js |
Basic example creating a pool of connections |
cqn1.js |
Basic Continuous Query Notification (CQN) example |
cqn2.js |
Continuous Query Notification with notification grouping |
date_timestamp1.js |
Show some basic DATE and TIMESTAMP behaviors |
date_timestamp2.js |
Show some DATE and TIMESTAMP behaviors with timezones |
dbconfig.js |
Common file used by examples for setting connection credentials |
dbmsoutputgetline.js |
Show fetching DBMS_OUTPUT by binding buffers |
dbmsoutputpipe.js |
Show fetching DBMS_OUTPUT by using a pipelined table |
dbobjassocarray.js |
Tests Associative Array-type dbObjects indexed by integer |
demodrop.js |
Drops the schema objects created by the examples |
demosetup.js |
Used to create common schema objects for the examples |
dmlrupd.js |
Example of DML RETURNING where multiple rows are matched |
em_batcherrors.js |
executeMany() example showing handling data errors |
em_dmlreturn1.js |
executeMany() example of DML RETURNING that returns single values |
em_dmlreturn2.js |
executeMany() example of DML RETURNING that returns multiple values |
em_insert1.js |
Array DML example using executeMany() with bind-by-name syntax |
em_insert2.js |
Array DML example using executeMany() with bind by position |
em_plsql.js |
executeMany() example calling PL/SQL multiple times with one call |
em_rowcounts.js |
executeMany() example showing how to find the number of rows affected by each input row |
endtoend.js |
Example showing setting tracing attributes |
example.js |
Basic example of creating a table, inserting multiple rows, and querying rows |
impres.js |
Shows PL/SQL 'Implicit Results' returning multiple query results from PL/SQL code. |
insert1.js |
Basic example creating a table and inserting data with DDL and DML respectively |
insert2.js |
Basic example showing auto commit behavior |
[jsonDV.js] (jsonDV.js) |
Basic example of JSON Duality View for a table with CRUD operations |
lastinsertid.js |
Shows inserting a row and getting its ROWID |
lobbinds.js |
Demonstrates how to bind and query LOBs |
lobinsert1.js |
Shows inserting a file into a CLOB column |
lobinsert2.js |
Inserts text into a CLOB column using the RETURNING INTO method. |
lobinserttemp.js |
Writes data to a Temporary CLOB and then inserts it into the database |
lobplsqltemp.js |
Streams data into a Temporary CLOB and then passes it to PL/SQL |
lobselect.js |
Shows basic, non-streaming CLOB and BLOB queries |
lobstream1.js |
Shows how to stream LOBs to files |
lobstream2.js |
Shows using Stream data events to fetch a CLOB |
lowercasecolumns.js |
Shows how a type handler can convert column names to lower case |
metadata.js |
Shows the metadata available after executing SELECT statements |
| `nesteddbobject.js | Shows binding of nested Oracle Database Object types |
ociConfigProvider.js |
Shows how to connect to Oracle Database using OCI Config Provider |
ociConfigProviderPool.js |
Shows how to connect with custom pool settings to Oracle Database using OCI Config Provider |
ocicloudnativetoken.js |
Shows how to connect to Oracle Database with cloud native token based authentication using OCI SDK |
ocitokenauth.js |
Shows connection pooling with OCI IAM token based authentication |
plsqlarray.js |
Examples of binding PL/SQL "INDEX BY" tables |
plsqlfunc.js |
How to call a PL/SQL function |
plsqlnestedrecords.js |
Shows binding of nested PL/SQL RECORDS |
plsqlproc.js |
How to call a PL/SQL procedure |
plsqlrecord.js |
Shows binding of PL/SQL RECORDS |
plsqlvarrayrecord.js |
Shows binding a VARRAY of RECORD in PL/SQL |
plsqlrowtype.js |
Shows binding of PL/SQL %ROWTYPE object |
raw.js |
Shows using a Buffer to insert and select a RAW |
refcursor.js |
Shows using a ResultSet to fetch rows from a REF CURSOR |
refcursortoquerystream.js |
Converts a REF CURSOR returned from execute() to a query stream. |
resultset1.js |
Executes a query and uses a ResultSet to fetch rows with getRow() |
resultset2.js |
Executes a query and uses a ResultSet to fetch batches of rows with getRows() |
resultsettoquerystream.js |
Converts a ResultSet returned from execute() into a Readable Stream. |
rowlimit.js |
Shows ways to limit the number of records fetched by queries |
select1.js |
Executes a basic query without using a connection pool or ResultSet |
select2.js |
Executes queries to show array and object output formats |
selectgeometry.js |
Insert and query Oracle Spatial geometries |
selectjson.js |
Shows some JSON features of Oracle Database 21c |
selectjsonblob.js |
Shows how to use a BLOB as a JSON column store |
selectobject.js |
Insert and query a named Oracle database object |
selectnestedcursor.js |
Shows selecting from a nested cursor |
selectstream.js |
Executes a basic query using a Readable Stream |
selectvarray.js |
Shows inserting and selecting from a VARRAY column |
sessionfixup.js |
Shows a pooled connection callback to efficiently set session state |
sessiontagging1.js |
Simple pooled connection tagging for setting session state |
sessiontagging2.js |
More complex example of pooled connection tagging for setting session state |
soda1.js |
Basic Simple Oracle Document Access (SODA) example |
soda2.js |
Simple Oracle Document Access (SODA) example with SodaDocumentCursor Iterators |
soda3.js |
Simple Oracle Document Access (SODA) example with extended JSON data types |
transactionguard.js |
Shows the use of Transaction Guard to verify if a transaction has completed |
typehandlerdate.js |
Show how a type handler can format a queried date in a locale-specific way |
typehandlernum.js |
Show how a type handler can alter queried numbers |
vectorSparse.js |
Insert and query SPARSE VECTOR columns. |
vectortype1.js |
Insert and query VECTOR columns. |
vectortype2.js |
Insert data into VECTOR columns and verify vector operations. |
version.js |
Shows the node-oracledb version attributes |
webapp.js |
A simple web application using a connection pool |
xmltypeInDbObject.js |
Work with XMLType data in DbObject (Thin mode only) |