Node.js连接Oracle数据库报错NJS-105,求原因及解决办法
NJS-105错误排查与解决(Node.js连接Oracle插入数据场景)
NJS-105是Oracle Node.js驱动(node-oracledb)的内存分配失败错误,多发生在处理大对象或批量操作时内存资源不足的场景,以下是具体排查和解决步骤:
- 处理大字段(CLOB/BLOB):若插入内容包含超大文本、二进制数据,避免一次性将数据加载到内存,改用流式处理。比如通过
connection.createLob()创建LOB对象,分块写入数据后再绑定到SQL语句。 - 优化批量插入逻辑:如果是批量插入大量数据,不要一次性将所有数据放入绑定数组,改为分批提交(比如每1000条提交一次),降低单次操作的内存占用。
- 升级驱动版本:旧版node-oracledb可能存在内存管理缺陷,升级到最新稳定版(如6.x系列)可修复部分已知问题。
- 调整Node.js内存上限:启动Node.js进程时添加
--max-old-space-size=4096参数(数值可根据实际需求调整),提升V8引擎的内存限制。 - 检查连接池配置:使用连接池时,避免
maxSize设置过大导致连接过多占用内存;确保每次使用完连接后调用connection.release()释放资源,防止连接泄漏。
内容的提问来源于stack exchange,提问作者ttyagi3963
相关产品推荐
相关产品推荐

