文档章节

Windows下NodeJs操作Oracle环境搭建(转)

airmount
 airmount
发布于 2014/06/10 16:10
字数 672
阅读 1527
收藏 0
操作系统: Windows8 64
node-module: node-oracle(https://github.com/joeferner/node-oracle)

安装过程中如果出现找不到 v8.h 之类的错误,请升级node到最新版!

1.安装node
  node官网(http://nodejs.org/download/)下载 node-v0.10.28-x64.msi (http://nodejs.org/dist/v0.10.28/x64/node-v0.10.28-x64.msi)安装;
2.安装 Oracle instant client(http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)
  Oracle instant client 是 Oracle 提供的访问数据库的 C++接口, 下载windows 64位(http://www.oracle.com/technetwork/topics/winx64soft-089540.html) Version 12.1.0.1.0 中的 instantclient-basic-windows.x64-12.1.0.1.0.zip和instantclient-sdk-windows.x64-12.1.0.1.0.zip; 并把它们解压到 C:\instantclient_12_1 文件夹中, 由于两个 zip 中的文件各不相同, 可以合并到同一个文件夹.
  oracle下载账号: oracle11r2@163.com / ORA11cle
3.安装vs2012/2010
4.安装Python2.x
5.设置系统环境变量
  OCI_INCLUDE_DIR=C:\instantclient_12_1\sdk\include
  OCI_LIB_DIR=C:\instantclient_12_1\sdk\lib\msvc\vc11
  OCI_VERSION=12
  Path=...;c:\instantclient_12_1\vc11;c:\instantclient_12_1
  注意: 对于2中下载的两个 zip 文件, OCI_VERSION 应设置为 12, 如果设置成 11, 则安装时会报错:  LINK : fatal error LNK1181: cannot open input file 'C:\instantclient_12_1\sdk\lib\msvc\vc11\oraocci11.lib' ;
  请确保 Path 中 c:\instantclient_12_1\vc11 在 c:\instantclient_12_1 前面. 如果Path中存在其他版本的oracle client配置,请保证 "c:\instantclient_12_1\vc11;c:\instantclient_12_1" 在 oracle client前.
6.安装 node-oracle
  npm install oracle -g
  (使用-g安装为全局modules,如果在某个project下使用,可以在project目录中实行 npm link oracle)
  成功安装后会显示 node-oracle 的版本号及实际安装到的目录.
7.测试:
  建表:

CREATE TABLE NODE_TEST
(
  A INTEGER,
  B INTEGER
);
INSERT INTO NODE_TEST(A, B) VALUES (1, 2);
INSERT INTO NODE_TEST(A, B) VALUES (3, 4);

  查询:select.js

var oracle = require('oracle');
var connectData = {"hostname": "localhost", "database": "XE" ,
                   "user": "用户名", "password": "密码"};

oracle.connect(connectData, function(err, connection) {
  if ( err ) {
    console.log(err);
  } else {
    connection.execute("SELECT * FROM NODE_TEST", [], function(err, results) {
      if ( err ) {
        console.log(err);
      } else {
        console.log(results);
      }

      connection.close();
    });
  }
});

执行

新增:insert.js

var oracle = require('oracle');
var connectData = {"hostname": "localhost", "database": "XE" ,
                   "user": "用户名", "password": "密码"};

oracle.connect(connectData, function(err, connection) {
  if ( err ) {
    console.log(err);
  } else {
    connection.execute(" INSERT INTO NODE_TEST (A, B) " +
                       " VALUES (:1, :2) RETURNING A INTO :3 ",
                       ['5', '6',  new oracle.OutParam()],
                       function(err, results) {
        if ( err ) {
          console.log(err)
        } else {
          console.log(results);
        }

        connection.close();
      }
    );
  }
});

执行

删除:delete.js

var oracle = require('oracle');
var connectData = {"hostname": "localhost", "database": "XE" ,
                   "user": "用户名", "password": "密码"};

oracle.connect(connectData, function(err, connection) {
  if ( err ) {
    console.log(err);
  } else {
    connection.execute("DELETE FROM NODE_TEST WHERE A = :1",
                       [5],
                       function(err, results) {
      if ( err ) {
        console.log(err);
      } else {
        console.log(results);
      }

      connection.close();
    });
  }
});

  执行

更新:update.js

var oracle = require('oracle');
var connectData = {"hostname": "localhost", "database": "XE" ,
                   "user": "用户名", "password": "密码"};

oracle.connect(connectData, function(err, connection) {
  if ( err ) {
    console.log(err);
  } else {
    connection.execute("UPDATE NODE_TEST SET B = :1 WHERE A = :2",
                       [8, 3],
                       function(err, results) {
      if ( err ) {
        console.log(err);
      } else {
        console.log(results);
      }

      connection.close();
    });
  }
});

  执行

DDL:

var oracle = require('oracle');
var connectData = {"hostname": "localhost", "database": "XE" ,
                   "user": "用户名", "password": "密码"};

oracle.connect(connectData, function(err, connection) {
  if ( err ) {
    console.log(err);
  } else {
    connection.execute("ALTER TABLE NODE_TEST ADD (C INT)",
                       [],
                       function(err, results) {
      if ( err ) {
        console.log(err);
      } else {
        console.log(results);
      }

      connection.close();
    });
  }
});

执行

本文转载自:https://www.evernote.com/shard/s40/sh/702fff21-4fc9-4613-8b49-06f29e94500b/e57ca9ba17a376f59c0719...

共有 人打赏支持
airmount
粉丝 2
博文 2
码字总数 0
作品 0
朝阳
程序员
加载中

评论(1)

雪人
雪人
16
React Native For Android 环境搭建

一. 环境搭建 1. JDK更新 http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html 使用最新的JDK或者8u91版本 2.Android SDK Tools/Android SDK Tools (24.3.3) T......

zting科技
2017/11/10
0
0
Windows 7 下 Node.js 连接 Oracle

安装 Oracle 11g express 详见: 《Windows 7 x64 安装 Oracle 11g Express》 2. 安装 Microsoft Visual Studio 2012 Express 在 Microsoft 官网注册并下载 Visual Studio 2012 Express for W......

sailtseng
2013/09/26
0
24
windows下nodejs开发环境的安装与配置

什么是Node.js?还服务器端javascript?对于这个概念我在这篇文章不做解释,可以自己去搜索了解下,服务器端js不是新技术,只是最近的node.js的火爆让他爆发了,我会在以后的文章里解释什么是n...

durban
2012/04/09
0
0
Node.js---01、初识NodeJS和Node.js的HTTP服务器搭建

一、前言 我们先从以下几个方面在大体上认识一下Node.js: Node.js 是什么?==> 运行环境 是一个 可以运行 并加载 ES语法的 脚本运行环境 JS(ES5)、ES6、Common.js 语法 …… Node.js 可以加...

秋季长青
2017/11/06
0
0
Node.js的安装及简单使用

今天要搭建node.js,所以自己就总结了一下。该文章不是原创。 什么是node.js? 每一种解析器都是一个运行环境,不但允许js定义各种数据结构,进行各种计算,还允许js使用允许环境提供的内置对...

AFinalDream
2017/04/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

React 服务器渲染原理解析与实践

网盘下载地址 React 服务器渲染原理解析与实践 本套课程,讲解了React中SSR技术的整个搭建思路及流程,完整的从原理上讲清楚了SSR的概念,重点在于讲解编写SSR框架遇到的各种知识点,以及细节...

qq__2304636824
43分钟前
0
0
Jenkins使用

clean install -Dmaven.test.skip=true

1713716445
52分钟前
0
0
多线程

1. 多线程概念。并发和并行的概念。 多线程指的是一段时间内cpu同时执行多个线程。一个程序至少运行>=1个进程,进程就是运行中的程序,而一个进程至少运行>=1个线程,线程是操作系统能调度的...

鱼想吃肉
今天
1
0
HBase 表修复在线方式和离线方式

一、在线修复 1.1 使用检查命令 $ ./bin/hbase hbck 该命令可完整修复 HBase 元数据信息;存在有错误信息会进行输出; 也可以通过如下命令查看详细信息: $ ./bin/hbase hbck -details 1.2 ...

Ryan-瑞恩
今天
3
0
redis 系列二 -- 常用命令

1.基础命令 info ping quit save dbsize select flushdb flushall 2.键命令 2.1 set 直接赋值 set a a 2.2 get 取值 get a 2.3 exists 是否存在 exists a 2.4 expire 设置剩余时间 秒 expire......

imbiao
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部