Tag: 存储过程

Postgres + Sequelize:如何读取函数结果?

我有一个函数payment_summary()如下: CREATE OR REPLACE FUNCTION payment_summary() RETURNS SETOF PAYMENT_SUMMARY_TYPE LANGUAGE plpgsql AS $$ DECLARE payment_sum payment_summary_type%ROWTYPE; BEGIN FOR payment_sum IN SELECT pay.application_no, project.title, pay.payment_rec, customer.cust_name, project.estimated_cost, (project.estimated_cost – pay.payment_rec) AS outstanding_amt FROM project INNER JOIN customer ON project.customer_cust_id = customer.cust_id INNER JOIN (SELECT project.application_no, sum(payment.amount) AS payment_rec FROM payment INNER JOIN project ON payment.project_id = […]

将数据从node.js存储到sql数据库

我试图将从客户端收到的结果数据存储到SQL数据库,但是我得到这些错误 TypeError:request.query(…)。然后不是一个函数 TypeError:callback不是一个函数 我对node.js和sql数据库相当陌生。 我花了相当多的时间来弄清这些,但不知道从哪里开始,我试图删除。然后,它工作正常,但仍然抛出第二个错误。 任何人都可以请这个问题的意见? 的node.js //Receive from Angular Server const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.all("/*", function (req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With'); next(); }); app.listen(1433, function () { console.log('Example app listening on port 1433!') […]

保护自己免受nodejs中的sql注入的最好方法

这是设置。 我使用ajax发送一个POST,在这里我将过程的参数发送到nodejs服务器。 在这个特定的情况下,用户名和代码。 此POST将request.get调用到执行使用这两个参数的过程的Web服务。 例如 app.post('url/:username/:code', function(req,res,next){ var procedure = 'EXECUTE procedureName'+req.params.code; request.get('myWslink/myService.asmx/service? callback=&userName='+req.params.username+'&procedureName='+procedure, function(){}); }); 前端用户无法看到我的web服务url,我的request.get url或我的过程名称,但他仍然可以看到正在发送的参数(用户名,代码),他可以更改这些参数,使他执行一个他不应该执行的过程。 他也可以多次调用一个POST请求,如果是一个插入过程,用一堆垃圾填充数据库。 保护自己免受这些攻击的最好办法是什么?

如何使用mysql库在Node.js中创build存储过程?

如何使用mysql库在Node.js中创build存储过程? npm包mysql是否支持创build存储过程,还是在这段代码中有错误? 这是我使用的npm库: https : //www.npmjs.com/package/mysql 我正试图自动为一个开源项目设置数据库,以帮助新的贡献者获得他们的开发环境并使其运行(并让我们所有人都在相同的数据库模式中)。 为了做到这一点,我写了一个脚本,应该把所有的命令发送到一个mysql实例来设置数据库。 创build表正在工作,但是创build新的存储过程总是导致错误。 当我在MySQL Workbench中运行命令时,创build脚本确实有效,所以问题似乎仅限于脚本。 var emails = "CREATE TABLE emails (" + "`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY," + "`email` VARCHAR(2048) CHARACTER SET utf8" + ");"; var addEmail = "DELIMITER //\n" + "CREATE PROCEDURE addEmail(IN email VARCHAR(2048))\n" + "BEGIN\n" + "INSERT INTO emails (email) VALUES (email);\n" + […]

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

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

Node.js:如何在Sequelize中使用Postgres存储过程?

我最近学习了这个强大的ORM的所有规格,如迁移表,定义模式,定义模型,关联,插入等。 我特别的问题是如何pipe理Postgres存储过程(SP)的续集? 我为我的服务器使用Node.js。

调用存储过程中的sequalize参数传入

我试图调用一个存储过程传递参数如下所示。 但是,我知道我的语法是closures的,我没有看到任何例子,无论是在文档或unit testing。 model.sequelize.query('CALL truncate_tables(\'appuser\');') .then(function (response) { done(); }).error(function (err) { done(err); }); build议? 我开始看这个链接。 在Sequelize.js中调用存储过程 附加信息: 这是我看到的错误 Unhandled rejection SequelizeDatabaseError: syntax error at or near "CALL" 这里是sp CREATE OR REPLACE FUNCTION truncate_tables(username character varying) RETURNS void AS $BODY$ DECLARE statements CURSOR FOR SELECT tablename FROM pg_tables WHERE tableowner = username AND schemaname = […]

将XML传递给节点中的存储过程

我想弄清楚如何使用MSSQL节点驱动程序将XML值传递给存储过程,从文档中我可以看到驱动程序确实支持存储过程,还可以像这样定义自定义数据types: sql.map.register(MyClass, sql.Text); 但我还没有find一个例子到目前为止如何做到这一点。 我find了一个类似的问题,但对于一个.NET SQL驱动程序,试图找出是否有人为Node做了这个。 UPDATE 我能够发送一个XML到一个存储过程,并parsing它在数据库中,这里的例子: var request = new sql.Request(connection); var xml = '<root><stock><id>3</id><name>Test3</name><ask>91011</ask></stock></root>' request.input('XStock', sql.Xml, xml); request.execute('StockUpdateTest', function (err, recordsets, returnValue, affected) { });

如何将parameter passing给一个mysql存储过程,并将存储过程的结果返回到nodejs代码中

connection.query("call vts_active_tagid('"+RFIDNumber+"','"+Latitude+"','"+Longitude+"','"+datetime+"','"+imeno+"',@passengers,@trip)"); 这个存储过程给出了一个包含名字,电话号码和passengerid的输出,如何在nodejs代码中获取这些值

pg-promise:将存储过程参数强制转换为postgres中该列的dataType

尝试使用pg-promise通过存储过程插入到PostgreSQL中。 我只看到整数/时间戳without.tz参数被成功插入。 每当存储过程包含布尔,字符变化参数时,该过程将失败: 函数(整数,未定义,未定义)不存在。 即使是最简单的存储过程(完全无歧义)也会因此错误而失败。 在Java中也面临同样的问题,但是可以在那里显式地抛出每个参数 “51212 :: INTEGER,'名称':: CHARACTER VARYING,'2016-07-26'::时间戳无时区” 而pg-promise不允许我提供参数。 实际上是否可以调用一个Postgres存储过程,而无需显式转换,无论是Java或Javascript? 如果是这样,怎么样? 什么作品是:只用双引号,而不是单…. db.proc('storedproc', [124, "AIM", new Date('2016-08-22'),false]).then()