问题标签 [node-oracledb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
632 浏览

protractor - 使用 oracledb 的量角器,从 oracle db 获取值后无法从其他函数访问值

我正在尝试编写可重用函数以从 oracledb 获取值并在需要时分配该值。

我的示例代码如下。//getTtalRwCnt.js

//spec.js

0 投票
1 回答
665 浏览

node.js - 更改 VSCode 中 extensionHost 调试器类型的 Node.js 版本

我正在开发一个 VSCode 扩展,它通过oracledb npm查询一个 Oracle 数据库实例

以 vscode-database扩展为基础。

安装的节点版本是 8.9.4。检查与 Oracle 的连接的测试脚本工作正常:

但是当我尝试使用相同的连接脚本调试 VSCode 扩展时,出现错误:

激活扩展 bajdzis.vscode-database 失败:NJS-045:无法加载 Node.js 7.9.0(win32、x64)的 oracledb 附加二进制文件

该错误表明正在使用 Node.js 7.9.0,而不是 8.9.4。我假设 7.9.0 - 是 VSCode 调试器使用的一些内部节点实例。

是否可以使 VSCode 调试器使用安装在开发人员机器上的 Node 版本,而不是内部版本?

0 投票
1 回答
1023 浏览

node.js - Node.js中如何控制Oracle的请求数?

我正在尝试使用 Node.js 和“oracledb”节点执行以下操作:

  1. 查阅数据库 A 以获取在特定日期发布的所有账单。
  2. 将结果分配给一个变量list
  3. 使用 上的功能.map()list并在此功能内部咨询数据库 B 以通过公共密钥获取客户的信息,对于list.

问题是:数据库 B 的请求是一起完成的,所以如果有 1000 个账单要映射,它只返回 100 个并将其余的视为错误。大概和同时请求的数量有关。

因此,鉴于详细信息,我想知道是否有办法划分请求数量(例如当时的 100 个)或任何其他解决方案。

ps.:我提前为我的错误道歉。我也为没有在代码上演示而道歉。

0 投票
0 回答
20 浏览

javascript - resolve 在完成其他功能之前被调用。完成其他操作后如何调用解析

我有一个功能,它将读取 excel 文档并将内容写入文件。编写完成后,我将调用 resolve,调用函数会将文件下载给用户。

但是在完成其他功能之前会调用resolve,因此下载时文件将为空。

0 投票
2 回答
2373 浏览

javascript - node-oracledb 绑定变量为 null

使用带有 node.js 的node-oracledb包,我试图删除我的 oracle 数据库中包含值的行。我需要能够将值作为绑定变量传递,但它会引发错误:

返回的错误是

{ 错误:ORA-00908:缺少 NULL 关键字 errorNum:908,偏移量:46 }

0 投票
2 回答
8501 浏览

node.js - 'oracledb' Oracle 客户端库错误(错误:NJS-045 和其他错误)

我已使用以下命令将 oracledb 库安装到我的项目文件夹中

'npm i oracledb --s'

它已成功安装,它位于我项目中的“node_modules”文件夹中。在项目文件夹中,我也有“instantclient”文件夹,下载并打开后。

当我尝试运行我的程序时,会出现以下错误:

在对象的要求(内部/module.js:11:18)处。(c:\Users\tlobel\Documents\Install_1\node_modules\oracledb\index.js:1:80) 在 Module._compile (module.js:652:30) 等待调试器断开连接... 错误:NJS- 045:无法加载 Node.js 8.11.1(win32、x64)的 oracledb 附加二进制文件 oracledb.js:68 无法加载 c:\Users\tlobel\Documents\Install_1\node_modules\oracledb\build\Release\oracledb。节点 DPI-1050:Oracle 客户端库必须为 11.2 或更高版本 Node-oracledb 安装说明:https ://oracle.github.io/node-oracledb/INSTALL.html 您的 PATH 中必须有 64 位 Oracle 客户端库环境变量. 如果您在这台计算机上没有 Oracle 数据库,则从 http://www.oracle.com/technetwork/topics/winx64soft-089540.html安装 Instant Client Basic 或 Basic Light 软件包 适用于您的 Oracle 的 Microsoft Visual Studio Redistributable客户端库版本必须可用

我的PATH如下所示:

PATH=C:\Python27\;C:\Python27\Scripts; C:\Users\usr1\My Documents\Install_1\instantclient;C:\Program Files\nodejs\;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin;C:\Program Files \Git\usr\bin;C:\Users\usr1\Downloads\Git-2.16.2-64-bit;C:\Users\usr1\Downloads\VC_redist.x64;C:\Program Files\Microsoft VS Code\bin ;C:\Users\usr1\AppData\Roaming\npm

我的项目位于文件夹中: C:\Users\usr1\My Documents\Install_1

我也下载了 VS redistributable,但我不知道把它放在哪里......有人知道必须解决哪些问题才能使其正常工作吗?

答案非常感谢!

0 投票
1 回答
928 浏览

oracle11g - ORA-02396: 超过了 node-oracledb 的最大空闲时间

我们在后端使用 oracle,node-oracledb并希望使用连接池来提高性能:

并使用这样的连接:

现在,我们经常收到以下错误:

ORA-02396: 超过最大空闲时间

并假设它与IDLE_TIME可能UNLIMITED出于安全原因未设置的相关(老实说,我真的不明白)。

有没有其他方法可以保持连接活跃?我的意思是,由于 nodejs 是单线程的,我不能简单地定期执行虚拟查询吗?

0 投票
2 回答
605 浏览

node.js - 如何从“on data”事件中“pipe”oracle-db 数据

我已经使用 node-oracledb 几个月了,到目前为止我已经成功地实现了我所需要的。

我目前正在开发一个搜索应用程序,它可能会从一次调用中返回大约 200 万行数据。为了确保我不会从浏览器和服务器断开连接,我想我会尝试 queryStream 以便有一个持续的数据流返回客户端。

我按原样实现了queryStream示例,这对几十万行运行良好。但是,当返回的行数大于一百万时,Node 会耗尽内存。通过记录和观察客户端和服务器日志事件,我可以看到客户端在发送和接收的行方面落后于服务器。因此,看起来 Node 正在崩溃,因为它正在缓冲大量数据。

值得注意的是,此时,我的 selectstream 实现位于通过 Express 调用的 req/res 函数中。

要返回数据,我会这样做......

我一直在阅读有关流和管道如何帮助处理流的信息,所以我想做的是能够将查询的结果通过管道传输到 a) 流的帮助和 b) 能够在将结果发送回客户端之前,将结果传递给其他函数。

例如

我花了几个小时试图找到允许我管道结果的解决方案或示例,但我被困住了,需要一些帮助。

如果我遗漏了一些明显的东西,我深表歉意,但我仍在掌握 Node 尤其是流。

提前致谢。

0 投票
0 回答
753 浏览

javascript - 使用 oracle Db 进行量角器测试

我需要在我的角度应用程序旁边测试数据库。场景是这样的,我在 UI 上做一些事情,看看值是否保留在 DB(Oracle) 中

为此,我安装了 node oracle DB 包,并且能够使用命令“Node filename.js”运行一个简单的 SELECT 语句。配置和选择语句存在于 filename.js

接下来,我尝试在步骤定义中包含相同的步骤。我的测试用例的第一步导航到应用程序主页,下一步是运行一个简单的 select 语句。我没有断言,因为我想首先让基本查询正常工作

这是我的步骤定义

当测试运行时,浏览器打开并加载主页,然后测试通过。我认为第二步甚至没有运行,因为查询结果没有打印在控制台中。

有人可以指出我正确的方向。量角器可以与 OracleDB 一起使用吗?我写的测试正确吗?我对此有很多问题,并且没有一个在线样本可用于使用 oracledb 进行量角器测试。这里的任何输入都会有所帮助,谢谢

0 投票
1 回答
569 浏览

node.js - oracledb npm 包 NJS-045 更新路径时出错

我已经通过“npm i oracledb”安装了“oracledb”包,在我的项目中需要它,并试图从我的 index.js 文件中获取到它的连接。我遇到了 NJS-045 错误:

错误:NJS-045:无法加载 Node.js 8.0.0(win32、x64)的 oracledb 附加二进制文件 无法加载 C:\Users\ZXR2737\Documents\EDQ.IECB.AnalysisAPI\node_modules\oracledb\build\Release \oracledb DPI-1050:Oracle 客户端库必须是版本 11.2 或更高版本 Node-oracledb 安装说明:https ://oracle.github.io/node-oracledb/INSTALL.html 您的客户端中必须有 64 位 Oracle 客户端库PATH 环境变量。如果您在此计算机上没有 Oracle 数据库,则从 http://www.oracle.com/technetwork/topics/winx64soft-089540.html安装 Instant Client Basic 或 Basic Light 软件包 适用于您的 Oracle 的 Microsoft Visual Studio Redistributable客户端库版本必须可用。

但是,我已经下载并提取了即时客户端,并在我的 PATH 中将其设置为“C:\oracle12\instantclient_12_2”。我什至尝试设置没有帮助的 LD_LIBRARY_PATH 环境变量。我还在这台计算机上安装了 TOAD for Oracle,这是我能想到的唯一可能会影响这一点的其他事情。有任何想法吗?