0

我正在尝试将 oracle 数据库与 node-oracledb 连接,但出现此错误。

Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 0x0001): tried: 'libclntsh.dylib' (no such file), '/usr/local/lib/libclntsh.dylib' (not a mach-o file), '/usr/lib/libclntsh.dylib' (no such file), '/Users/onuryuksekkaya/Documents/done/getwebee-pms/.webpack/service/libclntsh.dylib' (no such file), '/usr/local/lib/libclntsh.dylib' (not a mach-o file), '/usr/lib/libclntsh.dylib' (no such file)". See https://oracle.github.io/odpi/doc/installation.html#macos for help
Node-oracledb installation instructions: https://oracle.github.io/node-oracledb/INSTALL.html
You must have the arm64 Oracle Instant Client Basic or Basic Light package in ~/lib or /usr/local/lib
They can be downloaded from http://www.oracle.com/technetwork/database/database-technologies/instant-client/overview/index.html

有没有快速的解决方案?

我正在使用节点 14.18.1 和 oracle 4.2.0 和 m1 macbook pro

4

1 回答 1

0

我这样解决了这个问题:

首先,您必须从源代码安装 node-oracledb。它必须是这样的(这取决于您的 oracledb 版本)

"oracledb": "https://github.com/oracle/node-oracledb/releases/download/v5.3.0/oracledb-src-5.3.0.tgz",

那么你必须从这里下载 x86 oracle instantclient Basic Package (ZIP):https ://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html

那么您必须将节点版本从armx86 更改。您可以使用此命令在 zsh 终端中更改它

arch -x86_64 zsh    

(您必须安装节点 x64 版本的节点模块)

如果您想确保您的节点版本是 x64,您可以在终端上执行这些步骤

node console.log(process.arch)

输出将是你的拱门。它必须是 x64

当您使用这些命令时,您将安装 oracle 即时客户端 rm /usr/local/lib/libclntsh.dylib ln -s ~/Downloads/instantclient_19_8/libclntsh.dylib /usr/local/lib

当您尝试运行项目时,输出将是带有文档名称的许可错误。您必须使用文本编辑器一一打开这些文档。当您打开所有这些文档时,您可以自由地运行您的项目。

于 2021-11-23T10:50:42.573 回答