文档章节

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

airmount
 airmount
发布于 2014/06/10 16:10
字数 672
阅读 1441
收藏 0
点赞 0
评论 1
操作系统: 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

Node.js的安装及简单使用

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

AFinalDream ⋅ 2017/04/06 ⋅ 0

windows下nodejs开发环境的安装与配置

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

durban ⋅ 2012/04/09 ⋅ 0

如何在 Windows 10 中搭建 Node.js 环境?

【编者按】本文作者为 Szabolcs Kurdi,主要通过生动的实例介绍如何在 Windows 10 中搭建 [Node.js][1] 环境。文章系国内 [ITOM][2] 管理平台 [OneAPM][3] 编译呈现。 在本文中,笔者将展示如...

OneAPM蓝海讯通 ⋅ 2016/06/07 ⋅ 0

环信webim1.1.2版本在windows下npm环境搭建错误解决

1.1.2版本的webim从ui到整体的代码结构都做了很大改变,从代码结构上采用node.js的环境进行开发和打包,最终打包的输出项目,不依赖node.js的环境进行运行,得益于webpack的打包实现。 这里有...

easonjim ⋅ 2016/09/01 ⋅ 0

windows 下安装nodejs及其配置环境

相信对于很多关注javascript发展的同学来说,nodejs已经不是一个陌生的词眼。有关nodejs的相关资料网上已经铺天盖地。由于它的高并发特性,造就了其特殊的应用地位。 国内目前关注最高,维护最...

weixingo ⋅ 2016/07/01 ⋅ 0

【Angular】之Angular环境搭建

前言 小编最近在学习angular的内容,万事开头难,完成了开头也便成功了一半。这句话小编在这次的学习实践之旅中,深有体会,下面小编就来讲一讲,angular环境搭建之旅吧! 一、环境搭建 1.下...

m18633778874 ⋅ 05/08 ⋅ 0

专属博客,你值得拥有(Windows 版本)

一、前提: 二、准备条件 NodeJs Hexo Hexo 是一款基于Node.js、快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。 ...

Silence潇湘夜雨 ⋅ 05/20 ⋅ 0

ECMAScript 6 学习笔记(1)--编译环境搭建(VScode)

参考文档:http://es6.ruanyifeng.com/#docs/intro https://www.w3cschool.cn/ecmascript/ ECMAScript是一种定义脚本语言的规范,Javascript正是基于这种规范的一种实现。JavaScript是一种弱...

wx599c47c7bdcad ⋅ 05/18 ⋅ 0

在CentOS上搭建基于Nodejs的Ghost博客

Ghost介绍 搭建Ghost博客系统 1、本机测试环境 2、 安装Node.js #通过node -v 和npm -v命令查看是否安装成功。 3.、安装 ghost ①安装 Ghost Client (ghost-cli) ②添加 Ghost 运行用户并创...

明成51xit ⋅ 04/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JAVA RMI

什么是JAVA RMI Java RMI (Remote Method Invocation) 远程方法调用,能够让客户端像使用本地调用一样调用服务端 Java 虚拟机中的对象方法。RMI 是面向对象语言领域对 RPC (Remote Proced...

saulc ⋅ 30分钟前 ⋅ 0

Linux系统工程狮养成记

如今的社会,随着时代的发展,出现了很多职业,像电子类,计算机类的专业,出现了各种各样的工程师,有算法工程师,java工程师,前端工程师,后台工程师,Linux工程师,运维工程师等等,不同...

linux-tao ⋅ 40分钟前 ⋅ 0

进入编辑模式 vim命令模式 vim实践

1.

oschina130111 ⋅ 41分钟前 ⋅ 0

mysql用户管理、常用sql语句、mysql数据库备份恢复

1. mysql用户管理 mysql默认有一个root超级管理员账户,实际工作环境中不可能每个人都用此root权限,防止误操作、误删除,可以给单独的用户进行授权。 Mysql创建用户以及授权: grant all on...

laoba ⋅ 41分钟前 ⋅ 0

类型后面三个点(String...)和数组(String[])的区别

类型后面三个点(String…),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Obj...

流氓兔- ⋅ 47分钟前 ⋅ 0

JEPLUS表格组件之表格合并——JEPLUS软件快速开发平台

JEPLUS表格组件之表格合并 我们在列表配置时会遇见这样的一种情况,需要对个人的数据进行统一化,对一些数据进行归类,这样展示出来美观又直观,在这篇笔记中我来给大家介绍下如何配置出来专...

JEPLUS ⋅ 48分钟前 ⋅ 0

golang 并发中全局唯一操作

package main// go 携程共享 数据// 加锁解锁操作// 同步锁import ("sync""fmt")// 创建Once结构var once = sync.Once{}func computed(data *int, lock *sync.Mut...

304158 ⋅ 49分钟前 ⋅ 0

Mobx入门之二:asynchronous actions

这一节主要看mobx怎么实现asynchronous actions 1 要实现的demo功能 输入地名,查询天气,利用openweathermap api 2 思想 observable观察数据:location地点、temperature温度 observer响应式...

pengqinmm ⋅ 51分钟前 ⋅ 0

【2018.0620学习笔记】【linux高级知识 13.4-13.6】

13.4 mysql用户管理 创建用户并授权: grant all on *.* to '用户名'@'ip' identified by '密码' //all是操作权限,*.*是库.表,指定格式是'用户名'@'localhost'才能用socket登录本地 gra...

lgsxp ⋅ 今天 ⋅ 0

Java强弱引用示例

package jdk;import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;public ......

月下狼 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部