错误:DPI-1047 Oracle数据库连接错误 [英] Error: DPI-1047 Oracle Database Connection Error

查看:6
本文介绍了错误: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 Client rm /usr/local/lib/libclntsh.dylib ln -s ~/Downloads/instantclient_19_8/libclntsh.dylib /usr/local/lib

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

这篇关于错误:DPI-1047 Oracle数据库连接错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆