Tag: oracle

如何使用节点js将多个logging插入到oracle数据库中

我能够插入一个logging到一个表中,但我想一次插入多个logging到表中, 我的代码是低于 – var doinsert_autocommit = function (conn, cb) { var query="INSERT INTO test VALUES (:id,:name)"; var values=[{1,'rate'},{5,'ratee'}]; 如果我使用[1,'老鼠'] – 它的工作插入一行。 conn.execute( "INSERT INTO test VALUES (:id,:name)", values, // Bind values { autoCommit: true}, // Override the default non-autocommit behavior function(err, result) { if (err) { return cb(err, conn); } else { console.log("Rows inserted: " […]

不能在Ubuntu上安装“oracle”npm

当我尝试在我的Ubuntu机器上安装oracle npm模块时,出现以下错误信息: npm install oracle npm http GET https://registry.npmjs.org/oracle npm http 304 https://registry.npmjs.org/oracle > oracle@0.1.2 install /home/luc/node_modules/oracle > node-waf configure build Setting srcdir to : /home/luc/node_modules/oracle Setting blddir to : /home/luc/node_modules/oracle/build Checking for program g++ or c++ : /usr/bin/g++ Checking for program cpp : /usr/bin/cpp Checking for program ar : /usr/bin/ar Checking for program ranlib […]

当第三方软件更新数据库时,Node.JS和/或Meteor如何从数据库中获取callback

我想使用Meteor(Node.JS)来开发一个应用程序,这个应用程序将被一个大型数据库上的3000多个并发用户使用。 我已经看了很好的例子,把更改的数据推送到客户端的想法是非常好的,非常有用,但是在我开始开发之前,我想确定它是如何在幕后工作的,以确保当我有应用程序与所有这些用户一起运行,可以快速使用标准硬件。 我也要求这个将Oracle用作数据库,但不确定它是否受支持,如果不支持,那么Oracle包的要求是什么? 我认为服务器在mongodb的OPLOG表上有非活动的非阻塞查询,这就是我们如何获得数据库中所有更改的callback。 那是对的吗 ? 如果是的话,在Oracle中有没有类似的方法呢? 感谢Roni。

从SQL中的序列获取最后一个值并将其插入到另一个表(Oracle)中

我有2个表,它们是通过执行以下命令创build的(请记住,每个查询都是通过node.js执行的,即connection.execute('select ….')): create table User(userid int not null, name varchar(50) not null, primary key(userid)); create table Random(userid int not null, random int, primary key (userid), foreign key (userid) references User(userid) ); 我还添加了一个序列来自动递增用户ID: create sequence userid_seq; create or replace trigger userid_bir before insert on User for each row begin select userid_seq.nextval into :new.userid from dual; end; […]

Oracle – search文本 – 检索结果的片段

我目前在Node JS Express和Oracle中构build一个简单的search页面。 我想向用户显示匹配文本的片段(第一个实例会这样做),以添加SQL所find的位的上下文。 例: search词: 'fish' 结果: 亨利真的很喜欢去钓鱼 ,一旦他注意到… 我不确定最好的方式来处理这个问题 – 我可以检索整个文本块,并在Node JS中执行,但我不太喜欢将整个文本拖到应用程序的想法,只是为了得到片段。 我一直在想, REGEXP_SUBSTR可以做到这一点…但我不确定是否可以使用正则expression式来检索匹配的单词之前和之后的x个字符。 我有没有正确的想法,还是以错误的方式去解决? 谢谢 SELECT text , REGEXP_SUBSTR(LOWER(text), LOWER('fish')) AS potential_snippet FROM table WHERE LOWER(text) LIKE LOWER('%fish%');

如果我们不知道存储过程绑定参数,如何在node-oracledb中执行“存储过程”查询?

所有在文档中的例子都是用绑定variables给出的。但是如果我们要执行用户写的查询(存储过程)(在这种情况下,我们不会意识到什么是input和输出参数绑定)。 我能够执行所有基本的ddl和dml查询。 但是,如何执行存储过程,如查询和检索的方式是什么? 如果我们使用“db-oracle”,会不会有运气? 注意:我是nodejs和node-oracle-db的新手

ORA-12514错误,同时使用节点oracle-db npm packagae

目前,我正在开发一个需要后端在oracle完成的项目。 我使用了给定的链接,并在我的Mac上使用npm安装了node-oracledb 。 我的文件内容如下 var oracledb = require('oracledb'); oracledb.getConnection( { user : 'username', password : 'password', connectString : 'username/password//hostname:port/sid' function(err, connection) { if (err) { console.error(err.message); return; }else{ connection.execute( "SELECT * from TableName", function(err, result) { if (err) { console.error(err); return; } console.log(result.rows); }); } }); 当我运行节点filename.js我得到以下错误 ORA-12154: TNS:could not resolve the connect identifier specified […]

SESSIONS_PER_USER限制与nodejs

我一直在这个问题上挣扎了几个星期: 出于某种原因,连接到另一台机器上的oracle数据库的nodejs脚本开始出现SESSIONS_PER_USER限制的错误,但是我们没有任何其他连接打开数据库。 我尝试了另一个用户,但它返回了完全相同的错误。 最奇怪的部分是,这项服务已经运行了几个星期,这是它第一次给我们这个错误。 我们使用oracledb( https://github.com/oracle/node-oracledb )模块连接到数据库。 我们询问了支持团队,但显然他们可以使用我们的用户连接数据库,但是当涉及到使用我们的机器(ubuntu服务器14.04)的帐户,它会给出这个错误。 我试图寻找一个可能的“caching”的会议或在我们的机器内部的连接,但我还没有find关于谷歌这件事的很多帮助… 如果有人能就这个问题给我一些帮助,我将不胜感激,因为我不知道我还能做些什么。 提前致谢。

Node.js + Oracle – 在每个请求之后保持连接打开或closures?

我有一个使用Node.js和连接到Oracle数据库的Web应用程序。 目前,我的Node和DB之间的架构使用一个连接,保持打开状态。 问题是一些查询需要很长时间才能返回,从而阻塞后续查询,直到第一次返回。 如果我在每个请求上打开一个新的连接,这不会发生,并且后续的查询将在第一个(长)之前返回。 问题是什么是最佳实践? 每个请求是否值得在callback时closures数据库的新连接,我是否应该优先考虑我知道要花费大量时间用自己的连接进行的查询,还是一个连接是正确的? 非常感谢您的想法。

为什么我的node-oracledb执行Promise稳步增加需要解决的时间?

我正在编写一个与Oracle数据库进行交互的ETL工具,该数据库也使用node-oracledb 1.10和RxJS来处理我所徘徊的各种asynchronous数据stream。 我遇到了一个问题,我的应用程序运行的时间越长,调用node-oracledb的.execute()花费的时间.execute() ,并且它在运行时间中线性增加。 希望你可以在下面的代码中发现错误并纠正错误。 首先让我演示如何运行Oracle查询。 我创build了自己的.execute()函数,充当node-oracledb的.execute()的包装器。 import oracledb from 'oracledb'; var oraConnPool; export function execute(sql, bind, opts) { if (!oraConnPool) { createOraPool(); } return oraConnPool .then(pool => pool.getConnection()) .then(conn => conn.execute(sql, bind, opts)); } function createOraPool() { let oraPool = oracledb.createPool(config.database.oracle); oraConnPool = oraPool; return oraPool; } 和我的config.database.oracle (没有凭据): { "poolTimeout": 60, "poolMin": 10, […]