调用存储过程中的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 = 'public'; BEGIN FOR stmt IN statements LOOP EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.tablename) || ' CASCADE;'; END LOOP; END; $BODY$ 

我想你正在使用PostgreSQL。

PostgreSQL调用过程的语法与MySQL或IBM Informix等其他DBMS不同。 它不会CALL该过程,而是从存储过程中select。 可以在https://www.postgresql.org/message-id/41F009EA.6050401%40us.michelin.comfind一个参考。

也许这个代码会这样工作:

 model.sequelize.query('SELECT truncate_tables(\'appuser\');') .then(function (response) { done(); }).error(function (err) { done(err); });