问题标签 [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.
javascript - 为什么我的 node-oracledb 执行 Promise 的解决时间稳步增加?
我正在编写一个与Oracle
数据库交互的 ETL 工具,该工具还使用node-oracledb
1.10
和RxJS
处理我正在折腾的所有各种异步数据流。我遇到了一个问题,我的应用程序运行的时间越长,调用node-oracledb
's 的.execute()
时间就越长,而且运行时间似乎线性增加。希望您能在下面的代码中发现错误并纠正它。
首先让我展示一下我是如何运行 Oracle 查询的。我创建了自己的.execute()
函数,作为node-oracledb
's的包装器.execute()
。
我的config.database.oracle
(没有凭据):
下面是我调用.execute()
函数的示例。正如你所看到的,这里发生了很多事情,所以为了清楚起见,让我尝试对其进行一些注释。rnd
用于创建唯一 id console.time()
,因此我可以跟踪.execute()
Promise
解析所需的时间。让我知道这种时间测量技术是否存在缺陷。传递给SELECT
语句的绑定输入变量是 ssid 标识符的 csv 字符串,并且将返回匹配列表。这允许我批量处理记录,而不是为每个单独的行创建单个查询,希望节省一些执行时间。第一个.then()
使生成的对象数组中的每个键都小写。.then()
显然,第二个结束了console.time()
跟踪。
下面是console.time()
输出,它稳步增加,直到达到 60000 毫秒的queueTimeout
限制。
我已尝试包含大部分相关代码,如果您需要更多上下文,请告诉我。
编辑:
console.log(pool._logStats())
每次.execute()
调用该函数时,我都添加了一条语句。NJS-040
我已经包含了在错误之前最后一次打印的输出:
node.js - 安装 node-oracledb 时出错
我有一个简单的 node.js 服务器和一些在其上运行的应用程序,它应该连接到 Oracle 数据库。出于这个原因,我决定使用node-oracledb
驱动程序,但我在安装时遇到了一些问题。我按照Oracle 网页和github上的说明进行操作,但下面仍然出现错误。
我的环境配置:
- Windows 8.1 专业版 64 位
- node.js v6.4.0
- npm v3.10.3
- MS Visual Studio 2013 社区版
- Python v2.7.12
- Oracle Instant Client (基础+ SDK) v12.1.0.2.0
Node、Python 和 Oracle Instant Client 文件夹包含在 PATH 变量中。OCI_LIB_DIR 和 OCI_INC_DIR 也是根据github指令设置的。
这是问题所在:当我执行 command 时npm install oracledb -g
,出现以下错误:
我真的不知道在哪里寻找解决方案。什么可能导致该错误?节点/oracle 客户端/python 之间是否存在任何已知的不兼容性?
还有一件事:github指令说:
确保正确设置 Microsoft Visual Studio 环境变量。使用 set PATH 并验证它是否包含您的 Visual Studio 路径。如果未设置,请使用 vcvars64.bat(如果使用 32 位二进制文件构建,则使用 vcvars.bat)设置环境。
应该设置哪些 VS 环境变量,哪些 VS 路径应该包含在 PATH 中?
node.js - 使用带有 node-oracledb 的 SID 连接到 OracleDB 失败
我正在尝试使用 SID 连接到 Oracle DB 并收到以下错误
获取连接时出错 -错误:ORA-12545:连接失败,因为目标主机或对象不存在
我试过以下连接字符串:
主机:1521:SID
主机:1521/SID
HOST、PORT 和 SID 都是正确的,我可以使用 DBVisualizer 进行连接。
此外,我能够使用 SERVICE NAME 与 DBVisualizer 和节点应用程序成功连接。
有人可以帮我连接 SID 吗?
node.js - 在节点 oracle 中增加 OUT BIND 的大小。NJS-016:缓冲区太小,无法在错误时绑定 OUT(本机)
我正在使用sails-oracle-db 适配器将我的sails 应用程序连接到oracle。 https://www.npmjs.com/package/sails-oracle-db
Sails-oracle-db 内部使用 https://github.com/oracle/node-oracledb
我已按模型定义为
在 oracle 数据库中,我有一个名为 datapass 的表,其中有一个名为 assets 的列( varchar2 ,其大小为 4000 字节)
当我将数据插入此列时,它的值为
然后一切正常
但是当向资产数组添加一个条目并且数据的大小小于 4000Bytes
然后它给了我错误
:NJS-016:缓冲区太小,无法在错误时绑定(本机)
node.js - Oracle 和 PostgreSQL 的节点 ORM
我正在寻找与 Oracle 和 PostgreSQL 一起工作的节点 ORM。
我看到 Waterline 和 Sequelize 没有内置对 Oracle 的支持。
Sequelize-Oracle 是可用的。
是否有同时支持 Oracle 和 PostgreSQL 的单节点 ORM 模块?
请建议。
node.js - 返回使用 oracledb npm 包时得到的结果
我oracledb npm package
在创建 node.js 后端 API 时用于建立与数据库的连接。当我这样做时,我能够获得结果console.log(result.rows)
下面是功能代码
我从其他文件中调用 getDbConnection 函数,当我使用 console.log() 时调用console.log(getDbConnection(query))
. 我得到未定义的结果。我该如何解决这个问题。
node.js - 将nodejs连接到oracle
我使用以下说明安装了 node-oracle:https ://github.com/oracle/node-oracledb
但是,我一直在努力尝试连接到远程 oracle 数据库。所以我正在利用社区来帮助我。我创建了不同的 *.ora 文件(ldap.ora、sql.ora TNS 等)并将我的 TNS_ADMIN 目录设置为这些文件所在的位置。底线是我有这个连接字符串:
我可以使用 Oracle SQL Developer 很好地访问数据库。但是,我使用 SQLPlus 或 Node 没有成功。
我已经检查了这些(以及许多其他):
https://community.oracle.com/thread/3759037
如何使用 node-oracledb 连接到 LDAP 服务器?
有没有人想出这一点,并可以发布以下解决方案:
- 你的 jdbc 连接字符串
- 您的示例 *.ora 文件或您从节点传递给 oracledb.getConnection() 的任何参数?
谢谢,
node.js - 业力:node-oracledb 没有很好地导入
我的node-oracledb "oracledb": "1.11.0"
在我的项目中运行良好,但在我的测试中运行不佳。
命令后$ npm test
:
我不明白发生了什么,我需要在karma.conf文件中添加一些东西来启用 oracledb commonjs 依赖?
我有点迷茫,任何建议都会很棒
非常感谢!
javascript - Node.js + OracleDB:ORA-01036:非法变量名称/编号
你好,你是美丽的人。
我正在尝试使用连接到 OracleDB 的 node.js 创建 REST API,但我正在努力让这些愚蠢的绑定变量正常工作。
这是我的代码:
出于某种原因,我收到了错误
如果我删除绑定变量,分配一个静态值并在 sql 语句后删除“req.params.SCHEMA”并将括号留空,它可以工作。
我知道我拉入绑定变量的方式一定很简单,但我把头发拉出来了。
请帮帮我欧比旺克诺比……你是我唯一的希望。
谢谢!
node.js - Node.Js Oracledb 可选数组作为 IN 绑定参数到 Oracle 过程
我正在尝试在以下链接中提到的过程中传递数组,但该数组应该是可选的。我在过程中使用 forall 进行批量插入。但是某些时间列表也可能为空,并且程序中的其他内容也应该成功执行。
https://github.com/oracle/node-oracledb/blob/master/doc/api.md#plsqlindexbybinds
可以找到但如果我不想通过 vals 我会收到错误
我试过了
我收到以下错误消息
尝试传递 null 或 undefined 或不传递时:
尝试传递空数组时
我通过使用 null 传递数组来解决问题
并在执行 FORALL 之前从列表中删除空值的过程中。
这适用于临时,但我真的很想以适当的方式解决这个问题。