gpt4 book ai didi

node.js - 在sequelize中调用存储过程传入​​参数

转载 作者:太空宇宙 更新时间:2023-11-03 22:52:26 30 4
gpt4 key购买 nike

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

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$

最佳答案

我想您正在使用 PostgreSQL。

PostgreSQL 使用不同于 MySQL 或 IBM Informix 等其他 DBMS 的语法来调用过程。它不会CALL该过程,而是从存储过程中SELECT。可以在 https://www.postgresql.org/message-id/41F009EA.6050401%40us.michelin.com 找到引用。 .

也许这段代码可以工作:

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

关于node.js - 在sequelize中调用存储过程传入​​参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38088830/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com