文档章节

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

airmount
 airmount
发布于 2014/06/10 16:10
字数 672
阅读 1563
收藏 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...

上一篇: HTML5 -- FormData
下一篇: HTML5 -- FormData
airmount
粉丝 2
博文 2
码字总数 0
作品 0
朝阳
程序员
私信 提问
加载中

评论(1)

雪人
雪人
16
关于nodejs使用db-oracle数据库访问驱动出现异常求助

最近在学习使用nodejs,并且希望能够实现对oracle数据库进行简单的操作。 在完成所有的环境搭建后,我成功的实现对oralce数据库的简单查询,但是当我进一步执行插入记录操作时,返回了如下异...

limitfly
2011/10/06
2.7K
4
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
18.3K
24
windows下nodejs开发环境的安装与配置

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

durban
2012/04/09
8.9K
0
Node.js的安装及简单使用

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

AFinalDream
2017/04/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

精华帖

第一章 jQuery简介 jQuery是一个JavaScript库 jQuery具备简洁的语法和跨平台的兼容性 简化了JavaScript的操作。 在页面中引入jQuery jQuery是一个JavaScript脚本库,不需要特别的安装,只需要...

流川偑
24分钟前
6
0
语音对话英语翻译在线翻译成中文哪个方法好用

想要进行将中文翻译成英文,或者将英文翻译成中文的操作,其实有一个非常简单的工具就能够帮助完成将语音进行翻译转换的软件。 在应用市场或者百度手机助手等各大应用渠道里面就能够找到一款...

401恶户
36分钟前
3
0
jenkins 插件下载加速最终方案

推荐做法 1、告诉jenkins 我哪些插件需要更新 jenkins插件清华大学镜像地址 https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 1.进入jenkins系统管理 2.进入插件管...

vasks
42分钟前
4
0
composer爆错:zlib_decode():data error

解决办法:先用 composer diagnose 命令检测 然后 composer self-update 更新composer版本 最后执行 composer update 或者 composer install composer 切换阿里云镜像 用起来还快 composer c...

koothon
49分钟前
4
0
shangcheng-my

1.数据库主键、外键类型为bigint,那么在后台应该用什么类型的变量定义? 后台用string接收,因为前段传过来的一般都是json字符串,后台直接接收,mysql是可以吧数字类型的字符串转换为对应的...

榴莲黑芝麻糊
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部