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)即可。

NodeJs连接Oracle数据库的更多相关文章

  1. java连接Oracle数据库

    Oracle数据库先创建一个表和添加一些数据 1.先在Oracle数据库中创建一个student表: create table student ( id ) not null primary key, ...

  2. 记录排查解决Hubble.Net连接Oracle数据库建立镜像库数据丢失的问题

    起因 前几天在弄Hubble连接Oracle数据库,然后在mongodb中建立一个镜像数据库; 发现一个问题,原本数据是11W,但是镜像库中只有6w多条; 刚开始以为是没运行好,又rebuild了一下 ...

  3. jdbc连接oracle数据库

    /*** 通过改变配置文件来连接不同数据库*/package com.xykj.jdbc; import static org.junit.Assert.*; import java.io.Input ...

  4. 用VS连接oracle数据库时ORA-12504错误

    在用VS2008连接oracle数据库时,可能会出现: ORA-12504: TNS: 监听程序在 CONNECT_DATA 中未获得 SERVICE_NAME 只需在web.config文件Data ...

  5. ASP.NET连接Oracle数据库的步骤详解(转)

    ASP.NET连接Oracle数据库的步骤详解   本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助.   在用ASP.NET开发应用程序时, ...

  6. 64 位win 7或windows 8下的visual studio不能连接Oracle数据库调试网站的问题

    在64 位win 7或windows 8系统下,visual studio直接F5运行网站调试,你会发现不能连接Oracle数据库,会报一个“ORA-06413: Connection not ope ...

  7. [原创]安装Oracle 11gR2,以及如何在win8下使用plsql develper连接Oracle数据库 ,在这里和大家分享下

    一,关于win8下安装Oracle 11gR2 1.我下载的是Oracle_11gR2_win64.其中有两个包: 注意:在解压了之后将:win64_11gR2_database_2of2\datab ...

  8. 用Navicat连接Oracle数据库时报错ORA-28547:connection to server failed,probable Oracle Net admin error

    用Navicat连接Oracle数据库时出现如下错误 上网一查原来是oci.dll版本不对.因为Navicat是通过Oracle客户端连接Oracle服务器的,Oracle的客户端分为两种,一种是标准 ...

  9. JDBC连接Oracle数据库的问题

    场景:最近做一个java web项目,使用jdbc连接Oracle数据库,遇到了两个问题. 问题1:jdbc连接不上Ubuntu Oracle服务器? 后来发现这个问题的原因是由于连接字符串写错了,修 ...

随机推荐

  1. 转:linux coredump调试

    1 )如何生成 coredump 文件 ? 登陆 LINUX 服务器,任意位置键入 echo "ulimit -c 1024" >> /etc/profile 退出 L ...

  2. 【原创】JAVA并发编程——Callable和Future源码初探

    JAVA多线程实现方式主要有三种:继承Thread类.实现Runnable接口.使用ExecutorService.Callable.Future实现有返回结果的多线程.其中前两种方式线程执行完后都没 ...

  3. iOS 7 UI Transition – Porting View Controller Layouts from iOS 6

    http://www.mobinett.com/2013/08/19/ios7-ui-transition-porting-view-controller-layouts-ios6/

  4. sass中级语法

    github地址:https://github.com/lily1010/sass/tree/master/course02 用到的sass语法是: sass --watch test.scss:te ...

  5. [转] 编译安装GCC

    Linux下编写C/C++程序自然缺不了一个优秀的编译器,Linux下比较常见的自然是GCC了. 2015年GCC也出到了5.2.0版本,对于C++11/14也有了更好的支持了. 所以,今天我们就来说 ...

  6. Web Essentials之Browser Link

    返回Web Essentials功能目录 本篇目录 功能 当Browser Link运行时,会有一个菜单注入到你的网站上,Web Essentials可以使用该菜单上所有可用的一套Browser Li ...

  7. reactor & proactor 笔记

    1. 基本概念 1.1 同步/异步,针对应用程序和内核交互而言. 同步:进程触发IO操作等待或轮询查看IO操作是否完成: 异步:进程触发IO操作后仅需自身的处理,IO操作完成后会得到通知(异步的特点) ...

  8. http学习笔记(四)——HTTP报文

    http报文是在http应用程序之间发送的数据块,这些数据块以一些文本形式的元信息. 请求报文从客户端流入服务器,向服务器请求数据,服务器响应请求,响应报文从服务器流出,回到客户端. 这就构成了一个事 ...

  9. 在Grunt task中集成Protractor

    Protractor是专为AngularJS应用程序编写的UI自动化测试框架.前端构建有很多构建工具,比如Grunt.Gulp等.一般我们会把这些构建工具作为集成集成的脚本执行工具.所以如果把Prot ...

  10. mysql --prompt

    mysql --prompt修改命令行链接mysql时的提示符,shell脚本示例如下 #!/bin/bash in crm) cmd='mysql -h192.168.1.2 -uroot -pro ...