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

时间:2016-06-29 01:27:03

标签: node.js stored-procedures sequelize.js

我尝试调用传入参数的存储过程,如下所示。但是,我知道我的语法已关闭,并且我在文档或单元测试中都没有看到任何这样的示例。

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

建议?

我开始看这个链接。 Calling stored procedures in 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$

1 个答案:

答案 0 :(得分:4)

我想你正在使用PostgreSQL。

PostgreSQL使用与MySQL或IBM Informix等其他DBMS不同的语法调用过程。它不是!important过程,而是来自存储过程的CALL。可以在https://www.postgresql.org/message-id/41F009EA.6050401%40us.michelin.com找到参考。

也许这段代码可以起作用:

SELECT