Windows 7 下 Node.js 连接 Oracle
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
1.?安裝 Oracle 11g express
? 詳見: 《Windows 7 x64 安裝 Oracle 11g Express》
2. 安裝?Microsoft Visual Studio 2012 Express
? ?在 Microsoft 官網(wǎng)注冊(cè)并下載?Visual Studio 2012 Express for Windows Desktop, 運(yùn)行安裝.
3. 安裝 Node.js (當(dāng)前最新版本為v0.10.18)
? ?在 Node.js?官網(wǎng)下載?node-v0.10.18-x64.msi, 運(yùn)行安裝.
4. 安裝?node-oracle (當(dāng)前最新版本為 v0.3.4)
? ?通過 npm 來進(jìn)行安裝, 參考網(wǎng)址:?https://npmjs.org/package/oracle
(1). 安裝?Oracle instant client
這是 Oracle 提供的訪問數(shù)據(jù)庫的 C++接口,?windows 64位在這里下載?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 文件夾中, 由于兩個(gè) zip 中的文件各不相同, 所以合并到同一個(gè)文件夾也不會(huì)發(fā)生覆蓋.
(2). 設(shè)置系統(tǒng)環(huán)境變量
右鍵"我的電腦" → Properties → Advanced system settings → Environment Variables → System variables → New...
如果安裝了 Visutal Studio 2012, 則 環(huán)境變量如下:
注意: 對(duì)于(1)中下載的兩個(gè) zip 文件, OCI_VERSION 應(yīng)設(shè)置為 12, 如果按原文設(shè)置成 11, 則安裝時(shí)會(huì)報(bào)錯(cuò):??LINK : fatal error LNK1181: cannot open input file 'C:\instantclient_12_1\sdk\lib\msvc\vc11\oraocci11.lib' ;
請(qǐng)確保 Path 中 c:\instantclient_12_1\vc11 在?c:\instantclient_12_1 前面.?
(3). npm 安裝
Node.js 安裝完后, 會(huì)附帶安裝 npm, 在 cmd 窗口中執(zhí)行以下命令即可安裝 node-oracle:
或者使用 -g 命令安裝到 global 目錄中, windows7 下為 "C:\Users\當(dāng)前用戶\AppData\Roaming", 成功安裝后會(huì)顯示 node-oracle 的版本號(hào)及實(shí)際安裝到的目錄.
如果在需要使用代理進(jìn)行安裝, 則使用以下命令:npm install oracle --proxy http://proxy_server:port
5. 測試 Node.js 連接 Oracle
(1). 在 oracle 中創(chuàng)建 NODE_TEST 表并添加數(shù)據(jù).
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);(2). 在 C:\TEMP 目錄下添加 select.js.
var oracle = require('node-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(); });} });(3). 在 cmd 中執(zhí)行?node C:\TEMP\select.js, 成功檢索出數(shù)據(jù).
6.?測試 Node.js 對(duì) Oracle 的增/刪/改/查/DDL
(1). INSERT: 在 C:\TEMP 目錄下添加 insert.js
?
(2).?DELETE: 在 C:\TEMP 目錄下添加 delete.js
var oracle = require('node-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(); });} }); 在 cmd 中執(zhí)行 node C:\TEMP\delete.js 及 node C:\TEMP\select.js, 成功刪除數(shù)據(jù).?
(3).?UPDATE: 在 C:\TEMP 目錄下添加 update.js
var oracle = require('node-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(); });} }); 在 cmd 中執(zhí)行 node C:\TEMP\update.js 及 node C:\TEMP\select.js, 成功修改數(shù)據(jù).
?
(4).?DDL: 在 C:\TEMP 目錄下添加 ddl.js
var oracle = require('node-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(); });} }); 在 cmd 中執(zhí)行 node C:\TEMP\ddl.js 及 node C:\TEMP\select.js, 成功添加列C.?
7. 開發(fā)環(huán)境
Windows 7 Enterprise(64-bit) +?Microsoft Visual Studio 2012 Express +?
Oracle Database Express Edition 11g Release 2 for Windows x32 +?
Instant Client for Microsoft Windows (x64)(version 12.1.0.1.0) +
Node.js(v0.10.18) +?node-oracle(v0.3.4).
轉(zhuǎn)載于:https://my.oschina.net/zenglingfan/blog/164390
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的Windows 7 下 Node.js 连接 Oracle的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 马婕 2014MBA专硕考试 报刊选读
- 下一篇: iPhone系统常用文件夹位置