oracle与nodejs:使用与坑
发布于 2年前 作者 sumory 6147 次浏览

前段时间要使用oracle,搜了下决定采用node-oracle这个库.

  • 坑一

    windows各种安不上

  • 坑二

    npm上的版本有问题,需要到github下载它的源码包再手动安装.

  • 坑三

    如果使用pool的话,记得初始化时需要connection.setAutoCommit(true),否则数据库刷不出记录.

结论:

虽然最终在windows上编译通过,但如果你也用了它,一旦编译不通过赶紧撤吧,去linux搞; 遇到需要编译的第三方库,要清楚自己机器的配置(node版本、vs版本、环境变量)是否正确并满足编译要求; 没事千万别用oracle.

17 回复

oracle 资源太少了。。关于node的

node用oracle的不多,没需求没市场,不想mysql那样,各种库,各种解决方案

在linux下的话,oracle编码是zhs.16GBK node使用的utf8请问是否要转码

最终你用上 oracle 没有

客户要求,不用不行.

我现在正遇到了编码问题,同样的程序跑在我自己的虚拟机ubuntu上拿回来的数据中文正常,把程序放到另一台ubuntu上,拿回来的就是中文乱码

@sumory编码问题你解决了么?我NLS_LANG和服务器端一样仍然是乱码

@sumory编码问题我解决了 我设置终端 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_LANG 终端环境直接设置为utf-8这样终端显示中文

@zhs077跪了,我服务端和客户端的字符集一样,终端是uft8,插入依然是乱码,但是用sqlplus,navicat插入都是正常的……

@denghongcai 你的oracle字符是什么编码的?

@zhs077AMERICAN_AMERICA.AL32UTF8

用navicat插入中文之后,node-oracle查询是正常的,但是死活不能插入

@zhs077 instantclient也是用的basic版

@zhs077 我解决了,如果终端字符集是utf8,客户端字符集也是utf8,服务端字符集也是utf8的话,node.js中需要用utf8 module对字符串进行encode才行

我用npm的,没问题,可能是我的node版本比较老吧。 用oracle,都习惯手动commit。 JAVA项目的datasource,只要数据库是oracle,我也会故意setAutoCommit(false)。

最近正好尝试win7下 node.js 连接 oracle, 已成功连上并能执行增/删/改/查的sql. 请移步查看博文: http://my.oschina.net/zenglingfan/blog/164390 或者在 google 里搜索 《Windows7 下 Node.js 连接 Oracle》

@denghongcai 请问最后那句怎么理解?我现在也是所有的都是utf-8,但是数据查出来全是问号

我是在linux上安装成功的,分享下经验,这是我的博文 http://blog.gaoqixhb.com/p/53d98e7f3cff58870566e9b4

windows上没有尝试过,之前碰到一个人讨论过,他的windows上安装不上貌似是VS的版本问题,按照那个github里面的VS2012版本好像就可以了

回到顶部