问题描述
错误: DPI-1047: 无法找到64位Oracle客户端库: “libclntsh.so: 无法打开共享对象文件: 没有这样的文件或目录”。
您必须在LD_LIBRARY_PATH中具有64位Oracle客户端库,或者使用ldconfig进行配置。
以上是在aws lambda上运行函数的问题。
// lib/libclntsh.so可用。
我已经添加了路径,代码也在windows机器上本地工作。但不是在aws lambda上。
'严格使用';
进程。环境。ORA_SDTZ = 'UTC';
进程。env.LD_LIBRARY_PATH = '$ LAMBDA_RUNTIME_DIR:$ LAMBDA_RUNTIME_DIR/lib:$ LAMBDA_TASK_ROOT/lib';
const oracledb = require('oracledb');
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;
module.exports.getmrl = 异步事件 => { // console.log (事件); console.log(process.env.LAMBDA_RUNTIME_DIR,process.env.LAMBDA_TASK_ROOT);
// console.log (“ld路径”,process.env.LD_LIBRARY_PATH);
返回getMrl();
};
异步函数getMrl() {
让连接;
尝试 {
连接 = 等待oracledb.getConnection({
用户: 进程。环境。DB_USER,
密码: 进程。环境。DB_PASS,
连接字符串: 进程。环境。数据库 _ con_string
});
常量结果 = 等待连接。exe可爱 (
'从appdbdev.IA_MRL M内部选择M.MRL,I.DOC_URL加入appdbdev.IA_MRL_DOCUMENTS I使用 (IA_ID) 按M.Id排序'
);
console.log('result ::',result.rows);
返回 {statusCode: 200,data: result.rows };
} 抓 (错误) {
console.log('getmrl :: error ::',err);
console.error(err);
返回 {statusCode: 500,err: err };
} 最后 {
如果 (连接) {
尝试 {
等待连接。关闭 ();
} 抓 (错误) {
console.log('getmrl :: connection :: catch',err);
console.error(err);
返回 {statusCode: 401,err: err };
}
}
}
}
您必须在LD_LIBRARY_PATH中具有64位Oracle客户端库,或者使用ldconfig进行配置。
以上是在aws lambda上运行函数的问题。
// lib/libclntsh.so可用。
我已经添加了路径,代码也在windows机器上本地工作。但不是在aws lambda上。
'严格使用';
进程。环境。ORA_SDTZ = 'UTC';
进程。env.LD_LIBRARY_PATH = '$ LAMBDA_RUNTIME_DIR:$ LAMBDA_RUNTIME_DIR/lib:$ LAMBDA_TASK_ROOT/lib';
const oracledb = require('oracledb');
oracledb.outFormat = oracledb.OUT_FORMAT_OBJECT;
module.exports.getmrl = 异步事件 => { // console.log (事件); console.log(process.env.LAMBDA_RUNTIME_DIR,process.env.LAMBDA_TASK_ROOT);
// console.log (“ld路径”,process.env.LD_LIBRARY_PATH);
返回getMrl();
};
异步函数getMrl() {
让连接;
尝试 {
连接 = 等待oracledb.getConnection({
用户: 进程。环境。DB_USER,
密码: 进程。环境。DB_PASS,
连接字符串: 进程。环境。数据库 _ con_string
});
常量结果 = 等待连接。exe可爱 (
'从appdbdev.IA_MRL M内部选择M.MRL,I.DOC_URL加入appdbdev.IA_MRL_DOCUMENTS I使用 (IA_ID) 按M.Id排序'
);
console.log('result ::',result.rows);
返回 {statusCode: 200,data: result.rows };
} 抓 (错误) {
console.log('getmrl :: error ::',err);
console.error(err);
返回 {statusCode: 500,err: err };
} 最后 {
如果 (连接) {
尝试 {
等待连接。关闭 ();
} 抓 (错误) {
console.log('getmrl :: connection :: catch',err);
console.error(err);
返回 {statusCode: 401,err: err };
}
}
}
}
专家解答
将 $ ORACLE_HOME/lib添加到您的LD_LIBRARY_PATH
[oracle@db19 dbhome_1]$ cd $ORACLE_HOME [oracle@db19 dbhome_1]$ find . -name "libcl*" ./lib/libclntsh.so.10.1 ./lib/libclntshcore.so ./lib/libclsr19.a ./lib/libclntsh.so ./lib/libclsnsjni19.so ./lib/libclsce19.so ./lib/libclscest19.a ./lib/libclntshcore.so.19.1 ./lib/libclsra19.so ./lib/libclscred19.so ./lib/libclient19.a ./lib/libclntst19.a ./lib/libclntsh.so.19.1 ./lib/libclntsh.so.11.1 ./lib/libclntsh.so.12.1 ./lib/libclntsh.so.18.1
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




