错误:DPI-1047 Oracle数据库连接错误 [英] Error: DPI-1047 Oracle Database Connection Error
本文介绍了错误:DPI-1047 Oracle数据库连接错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试将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
此问题有快速解决方案吗?
我使用的是Node 14.18.1和Oracle 4.2.0以及M1 MacBook Pro
推荐答案
我修复了此问题,如下所示:
首先,您必须从源代码安装node-oracledb。 必须是这样的(这取决于您的oracledb版本)"oracledb": "https://github.com/oracle/node-oracledb/releases/download/v5.3.0/oracledb-src-5.3.0.tgz",
然后您必须从以下位置下载x86 Oracle即时客户端基本包(ZIP):https://www.oracle.com/database/technologies/instant-client/macos-intel-x86-downloads.html
然后,您必须将节点版本从arm
更改为x86。
您可以使用以下命令在zsh终端中更改它
arch -x86_64 zsh
(必须安装节点x64版本的节点模块)
如果您想确保您的节点版本是x64,您可以在终端上执行以下步骤
node
console.log(process.arch)
输出将是您的ARCH。必须是x64
使用这些命令时,您将安装Oracle Instant Clientrm /usr/local/lib/libclntsh.dylib
ln -s ~/Downloads/instantclient_19_8/libclntsh.dylib /usr/local/lib
当您尝试运行项目时,输出将允许带有文档名称错误。您必须使用文本编辑器逐个打开这些文档。打开所有这些文档后,您就可以自由运行项目了。
这篇关于错误:DPI-1047 Oracle数据库连接错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文