开发者社区> 冰荷> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

NodeJs连接Oracle数据库

简介: Node.js连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md Win7下安装node-oracledb官方步骤:https://community.oracle.com/docs/DOC-931127 系统环境: windows
+关注继续查看

Node.js连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md
Win7下安装node-oracledb官方步骤:https://community.oracle.com/docs/DOC-931127

系统环境:

  • windows7 x64
  • nodejs 4.4.7
  • Python 2.7.10
  • NPM 1.3.1

操作步骤简介

原理:npm调用下载,下载成功之后交由oracle客户端解析驱动包,解析成功之后,执行完成,目录node_modules生成oracledb模块。程序运行时调用oracle sdk执行代码编译,程序运行逻辑处理,输出页面结果。

  1. 安装Visual Studio 2017 Community(如已安装请跳过此步骤,下载地址:https://www.visualstudio.com/downloads
  2. 下载并配置oracle客户端驱动包
  3. 添加环境变量
  4. 手动编译oracledb模块
  5. 测试连接是否正常

安装详情

1、下载并安装VS2017

2、下载解压需要安装包(2个)

下载页面:http://www.oracle.com/technetwork/topics/winx64soft-089540.html

下载名称:

instantclient-basiclite-windows.x64-12.1.0.2.0.zip

instantclient-sdk-windows.x64-12.1.0.2.0.zip

把两个文件解压到“C:\oracle\instantclient_12_1”文件目录不同,不会相互覆盖。

3、添加环境变量

  • OCI_INC_DIR=C:\oracle\instantclient_12_1\sdk\include
  • OCI_LIB_DIR=C:\oracle\instantclient_12_1\sdk\lib\msvc

注意!如果本机安装oracle服务器端,请把次环境变量如下地址:

OCI_INC_DIR = C:\app\Administrator\product\11.2.0\dbhome_1\oci\include
OCI_LIB_DIR = C:\app\Administrator\product\11.2.0\dbhome_1\OCI\lib\MSVC

4、手动编译oracledb

1. 在D盘创建一个空目录:build-oraceldb
2. 进入D:\build-oracledb目录,使用GIT下载最新版的node-oracledb,地址是:https://github.com/oracle/node-oracledb
3. 进入D:\build-oracledb\node-oracledb目录,打开命令行执行命令:node-gyp configure build 以生成build目录
4. 进入D:\build-oracledb\node-oracledb\build目录,用VS2017打开binding.sln,根据提示转换为最新项目
5. 使用VS2017手动进行编译,遇到编译失败的问题使用GOOGLE来解决
6. 编译成后将node-oracledb复制到真实项目的node_modules目录中,并改名为oracledb

5、测试连接是否正常

router.get('/', function (req, res, next) {

    var oracledb = require('oracledb');
    oracledb.getConnection(
        {
            user: 'username',
            password: 'password',
            connectString: '192.168.20.10:1521/ORCL'
        },
        function (err, connection) {
            if (err) {
                console.error(err.message);
                return;
            }
            connection.execute(
                "SELECT * from CMS_FIlE where content_id=:id",
                [1072],  // bind value for :id
                function (err, result) {
                    if (err) {
                        console.error(err.message);
                        return;
                    }
                    res.render('index', {title: '查询信息:' + JSON.stringify(result.rows)});
                });
        });

});

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Oracle数据库的增删改操作介绍
前面的博文介绍了Oracle的简单查询操作,博客地址:http://blog.csdn.net/weixin_36380516/article/details/65935879 这里再对Oracle的更新操作即Oracle的增删改操作进行简单的介绍 首先要掌握对表结构的基本操作。 增加字段: alter table 表名 add(字段名 字段类型和长度) alter table
803 0
ADO.Net对Oracle数据库的操作【转载】
一 ADO.Net简介 访问数据库的技术有许多,常见的有一下几种:开放数据库互联(ODBC)、数据访问对象(DAO)、远程数据对象 (RDO)、 ActiveX数据对象(ADO)。我们今天主要要学习ADO.NET中OracleClient命名空间中的几个常用对象,用这作为对ADO.NET认 识学习的开始。
831 0
Oracle 数据库性能优化3日实战(企业培训)
课程名称一: Oracle性能优化及调整 课程时长 1天 课程深度: 高级 上机实验: 10%-30% 授课对象: Oracle开发人员、Oracle数据库管理人员,应用程序开发人员 课程描述: 本课程讲述Oracle数据库物理层规划,系统性能的监控,数据库性能参数调整,统计信息的收集,使用自动化调试工具优化数据库,I/O子系统的配置与设计以及性能优化方法论等。
1129 0
Oracle实例和Oracle数据库(Oracle体系结构)
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --========================================== /*     对于初接触Oracle 数据库的人来讲,很容易混淆的两个概念即是Oracle 实例和Oracle 数据库。
1247 0
Oracle 11g数据库相关操作
1、Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出,怎么解决? 办法一:   设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment。
475 0
oracle数据库带或不带数据导入导出操作大全
oracle数据库带或不带数据导入导出操作大全
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PostgresChina2018_刘成伟_oracle到Postgres数据库迁移工具
立即下载
ORACLE 10g 数据库体系结构图
立即下载
Oracle 至PostgreSQL案例分享
立即下载