Welcome to node-oracledb’s documentation!
The node-oracledb add-on for Node.js powers high performance Oracle Database applications.
node-oracledb is distributed under an open-source license. Changes in the node-oracledb releases can be found in the release notes.
This module is currently tested with Node.js 16, 18, and 20 against Oracle Database 23ai, 21c, 19c, 12c, and 11gR2.
You can use assistive technology products, such as screen readers, while you work with the node-oracledb documentation. You can also use the keyboard instead of the mouse.
User Guide
- 1. Introduction to the node-oracledb Driver for Oracle Database
- 2. Installing node-oracledb
- 2.1. Quick Start node-oracledb Installation
- 2.2. Supported Oracle Database Versions
- 2.3. Installation Requirements
- 2.4. Installing Node.js and node-oracledb on Linux
- 2.5. Installing Node.js and node-oracledb on Apple macOS
- 2.6. Installing Node.js and node-oracledb on Microsoft Windows
- 2.7. Installing node-oracledb Without Internet Access
- 2.8. Installing node-oracledb from Source Code
- 2.9. Hosting Your Own node-oracledb Packages
- 2.10. Using node-oracledb in Docker
- 3. Initializing node-oracledb
- 4. Connecting to Oracle Database
- 4.1. Standalone Connections
- 4.2. Connection Strings
- 4.3. Connections, Threads, and Parallelism
- 4.4. Connection Pooling
- 4.5. Connecting Using Proxy Authentication
- 4.6. Connecting Using External Authentication
- 4.7. Token-Based Authentication
- 4.8. Database Resident Connection Pooling (DRCP)
- 4.9. Implicit Connection Pooling
- 4.10. Privileged Connections
- 4.11. Securely Encrypting Network Traffic to Oracle Database
- 4.12. Changing Passwords and Connecting with an Expired Password
- 4.13. Connections and High Availability
- 4.14. Connecting to Oracle Real Application Clusters (RAC)
- 4.15. Connecting to Oracle Cloud Autonomous Databases
- 4.16. Connecting using Multiple Wallets
- 4.17. Connecting Using Centralized Configuration Providers
- 4.18. Connecting to Sharded Databases
- 5. Executing SQL
- 5.1. SELECT Statements
- 5.1.1. Fetching Rows with Direct Fetches
- 5.1.2. Fetching Rows with Result Sets
- 5.1.3. Query Streaming
- 5.1.4. Query Output Formats
- 5.1.5. Fetching Nested Cursors
- 5.1.6. Query Column Metadata
- 5.1.7. Changing Fetched Data
- 5.1.8. Fetching Different Data Types
- 5.1.9. Limiting Rows and Creating Paged Datasets
- 5.1.10. Auto-Increment Columns
- 5.2. Cursor Management
- 5.1. SELECT Statements
- 6. Executing PL/SQL
- 7. Using Bind Variables
- 8. Executing Batch Statements and Bulk Loading
- 9. Managing Transactions
- 10. Tuning node-oracledb
- 11. Using CLOB, NCLOB, BLOB, and BFILE Data
- 12. Using JSON Data
- 12.1. Using the Oracle Database 21c JSON Type in node-oracledb
- 12.2. Using the Oracle Database 12c JSON Type in node-oracledb
- 12.3. Using BLOB columns with OSON Storage Format in node-oracledb
- 12.4. IN Bind Type Mapping
- 12.5. Query and OUT Bind Type Mapping
- 12.6. SQL/JSON Path Expressions
- 12.7. Accessing Relational Data as JSON
- 12.8. JSON-Relational Duality Views
- 12.9. Portable JSON
- 13. Using XMLType Data
- 14. Using VECTOR Data
- 15. Using Oracle Database Objects and Collections
- 16. Working with Simple Oracle Document Access (SODA)
- 16.1. Node-oracledb SODA Objects
- 16.2. Committing SODA Work
- 16.3. Node-oracledb SODA Requirements
- 16.4. Creating and Dropping SODA Collections
- 16.5. Creating and Accessing SODA Documents
- 16.6. SODA Query-by-Example Searches for JSON Documents
- 16.7. Creating and Dropping SODA Indexes
- 16.8. SODA Text Searches
- 16.9. SODA Client-Assigned Keys and Collection Metadata
- 16.10. JSON Data Guides in SODA
- 16.11. Using the SODA Metadata Cache
- 17. Using Oracle Advanced Queuing (AQ)
- 18. Working with Continuous Query Notification (CQN)
- 19. Using Two-Phase Commits (TPC)
- 20. Starting and Stopping Oracle Database
- 21. Tracing with node-oracledb
- 22. Character Sets and Localization
- 23. Error Handling
- 24. Troubleshooting Errors
- 25. Upgrading to the Latest node-oracledb Releases
- 25.1. Upgrading from node-oracledb 6.5 to 6.6
- 25.2. Upgrading from node-oracledb 6.4 to 6.5
- 25.3. Upgrading from node-oracledb 6.3 to 6.4
- 25.4. Upgrading from node-oracledb 6.2 to 6.3
- 25.5. Upgrading from node-oracledb 6.1 to 6.2
- 25.6. Upgrading from node-oracledb 6.0 to 6.1
- 25.7. Upgrading from node-oracledb 5.5 to 6.0
- 25.8. Upgrading from node-oracledb 5.4 to 5.5
- 25.9. Upgrading from node-oracledb 5.3 to 5.4
- 25.10. Upgrading from node-oracledb 5.2 to 5.3
- 25.11. Upgrading from node-oracledb 5.1 to 5.2
- 25.12. Upgrading from node-oracledb 4.2 to 5.0
- 25.13. Upgrading from node-oracledb 4.1 to 4.2
- 25.14. Upgrading from node-oracledb 4.0 to 4.1
- 25.15. Upgrading from node-oracledb 3.1 to 4.0
- 25.16. Earlier node-oracledb Versions
- 26. Node.js Programming Styles
- 27. Useful Resources for node-oracledb
- 28. Appendix A: The node-oracledb Thin and Thick Modes
- 28.1. Oracle Database Features Supported by node-oracledb
- 28.2. Differences between the node-oracledb Thin and Thick Modes
- 28.2.1. Connection Handling Differences between Thin and Thick Modes
- 28.2.2. Connection Pooling Differences between Thin and Thick Modes
- 28.2.3. Query Metadata in Thin and Thick Modes
- 28.2.4. Error Handling in Thin and Thick Modes
- 28.2.5. Globalization in Thin and Thick Modes
- 28.2.6. Tracing in Thin and Thick Modes
- 28.2.7. Data Type Conversion in Thin and Thick Modes
- 28.2.8. Supported Database Data Types in Thin and Thick Modes
- 28.3. Testing Which Mode Is in Use
- 28.4. Frameworks, SQL Generators, and ORMs
API Manual
- 1. API: Oracledb Class
- 2. API: Connection Class
- 3. API: AqQueue Class
- 4. API: DbObject Class
- 5. API: LOB Class
- 6. API: Pool Class
- 7. API: PoolStatistics Class
- 8. API: ResultSet Class
- 9. API: SodaCollection Class
- 10. API: SodaOperation Class
- 11. API: SodaDatabase Class
- 12. API: SodaDocument Class
- 13. API: SodaDocumentCursor Class
- 14. API: Errors
- 15. Deprecated and Desupported Features