NodeJs连接Oracle数据库

nodejs连接oracle数据库,各个平台的官方详情文档:https://github.com/oracle/node-oracledb/blob/master/INSTALL.md

我的nodejs连接Oracle的配置,运行环境:

windows7 x64

nodejs 0.12.7

Python 2.7.10

npm 2.11.3

运行原理分析

npm调用下载,下载成功之后交由oracle客户端解析驱动包,解析成功之后,执行完成,目录node_modules生成oracledb模块;

程序运行时调用oracle sdk执行代码编译,程序运行逻辑处理,输出页面结果。

实现步骤简介

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

2、添加环境变量

3、npm执行安装命令

4、查询demo代码

5、常见错误解决方案

 

安装详情

1、下载解压需要安装包(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”文件目录不同,不会相互覆盖。 

2、添加环境变量

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

3、npm执行安装命令

npm install oracledb

4、查询demo代码

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)});
});
});
});

执行后,展现效果,如图:

5、常见错误解决方案

错误信息,如下:

The specified procedure could not be found. 

c:\xxx\oracledb.node

解放方案:服务器安装版本与环境变量的OCI_INC_DIR、OCI_LIB_DIR版本不符,设置版本为一致的即可,参照上面步骤2,配置完成之后,删除之前下载的oracledb模块,重新下载oracledb模块(npm install oracledb)即可。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重置Oracle密码

在系统运行中输入: sqlplus /nolog 在命令窗口分别执行: conn /as sysdbaalter user scott identified by tiger;alter user scott account unlock; 这样就把“scott”用户密码修改为“tiger”了,用户可根据自己需求,重置密码。

ImportError: No module named ‘sklearn.qda‘  ImportError: No module named ‘sklearn.lda‘

ImportError: No module named sklearn.qda ImportError: No module named sklearn.lda from sklearn.qda import QDAImportError: No module named sklearn.qda’ from sklearn.qda import LDAImportError: No module named sklearn.lda’ 版本更新问题。 更改为&#…

maven实现多模块热部署

2019独角兽企业重金招聘Python工程师标准>>> 一、背景 基于maven的项目工程都会按模块划分,每个模块最终形成一个jar包,那么每次对模块的修改就需要重新打包,这样的工作重复而繁琐,以前的热部署解决方案都是只针对web…

鲲鹏服务器php性能,对鲲鹏服务器的内存进行性能优化后的前后数据对比

测试的鲲鹏服务器是96核2numa节点,内存测试用的是Imbench里面的stream。优化说明,bios和绑核优化后性能提升明显,编译参数优化后性能提升不明显可以根据情况是否进行编译优化1、Bios修改:进入bios,在Advanced中进入Memory Config界…

Express调用mssql驱动公共类dbHelper

直接上代码: /** * Created by chaozhou on 2015/9/18. */var mssql require(mssql);var user "sa", password "sa", server "192.168.20.132", database "ggcms";/** * 默认config对象 * type {{user: stri…

怎么修改RO服务器版本,谁知道build.prop的系统版本号怎么改

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼# begin build properties# autogenerated by buildinfo.shro.build.idJDQ39ro.build.display.idJDQ39ro.build.version.incrementalV1.11ro.build.version.sdk17ro.build.version.codenameRELro.build.version.release4.2.2ro.bui…

清理vs工程文件(python2.7)

本文记录了两种方法,用于对vs目录的清理工作,这两种方法都是用python2.7实现的,一个是基于文件的扩展名,一个是基于文件的大小: 基于文件大小的清理脚本: #-*- coding:utf-8 -*- import os import string d…

Python如何忽略warning的输出

有时候运行代码时会有很多warning输出,如提醒新版本之类的,如果不想这些乱糟糟的输出可以这样: import warningswarnings.filterwarnings(ignore) 命令行下则可以: python -W ignore file.py 这样就可以避免warnings的输出了&…

nodejs常用组件

mssql 用途:连接SqlServer数据库 node-excel-export 用途:导出excel表格 nodegrass 用途:模拟用户进行get/post请求,下载文件等 uuid 用途:生成全球唯一标识的. 官网:https://npm.taobao.org/package/…

手机投屏时电视显示服务器有问题,小屏变大屏,手机投屏这几招你学废了么?...

马上七夕了,又恰逢周末不想去电影院凑热闹的人可以在家看电影、追剧但是小屏看剧一点也不爽何不投放到电视上饱览大视野呢我们可以借助“投屏”功能痛痛快快在电视上观看想看的剧集和电影那么如何通过手机,将内容传送到智能电视上呢那么接下来为大家介绍…

ImportError: No module named ‘pandas.io.data‘

ImportError: No module named pandas.io.data 第一步:pip install pandas-datareader 第二步: 把 "from pandas.io.data import DataReader" 换成 "from pandas_datareader import data"

分类算法之决策树介绍

实习了一段时间,接触了一些数据挖掘、机器学习的算法,先记录下来方便以后的复习回顾: 一:决策树概念 决策树可以看做一个树状预测模型,它是由节点和有向边组成的层次结构。树中包含3中节点:根节点、内部节点…

C#调用Couchbase中的Memcached缓存

安装服务端 服务端下载地址:http://www.couchbase.com/download 选择适合自己的进行下载安装就可以了,我这里选择的是Win7 64。 服务端安装完后,如果成功了,那么在浏览器中可以看到。如果没有那么需要手动进行访问http://localhost:8091/ind…

Windows10安装Anaconda和Pytorch(CPU版,无GPU加速)

1.Anaconda安装 Anaconda的安装网上的教程非常非常多,很简单,下面这篇博客写的很详细,看我写的也可以。 地址:https://blog.csdn.net/u014546828/article/details/80334448 注意:不建议从 官网下载,官网…

云计算的发展及应用--演讲用PPT

最近在几个客户处进行了关于云计算的普及培训。主要是让用户了解什么是云计算,云计算的框架以及对我们的影响。我将自己手中的几本相关资料,结合自己的经验和理解,整合成了一篇演示用的PPT。 虽然演示用的PPT简洁些,但用来理解一下…

nodejs Error: request entity too large解决方案

错误如图: 解决方案: app.js添加 var bodyParser require(body-parser);app.use(bodyParser.json({limit: 50mb}));app.use(bodyParser.urlencoded({limit: 50mb, extended: true}));

閱讀10大優點:為什麼你應該每天閱讀

閱讀10大優點:為什麼你應該每天閱讀當是你最後一次讀一本書,或主要雜誌上的文章?你的日常的閱讀習慣圍繞推特,Facebook的更新或速溶燕麥片包上的指示?如果你是其中之一,無數的人誰不經常閱讀的習慣&#xf…

Node出错导致运行崩溃的解决方案

许多人都有这样一种映像,NodeJS比较快; 但是因为其是单线程,所以它不稳定,有点不安全,不适合处理复杂业务; 它比较适合对并发要求比较高,而且简单的业务场景。 在Express的作者的TJ Holowaychuk…

python回测量化交易策略收益率

本篇我们将对比经典量化回测框架pyalgotrade与ailabx,二者同时实现均线策略。 “积木式”实现策略示例 “买入并持有”策略: buy_and_hold Strategy([ RunOnce(), PrintBar(),SelectAll(),WeighEqually(),]) “均线交叉策略”: long_ex…

移动端HTML5框架

一:移动端HTML5框架 http://jquerymobile.com/jQuery Mobilehttp://jqtjs.com/jQTouchhttp://www.sencha.com/products/touchSencha Touch二:三大框架区别 http://mobile.51cto.com/web-321296.htmhttp://www.leiphone.com/0907-warlial-html5-framework…