2016-06-29 1 views
1

아래와 같이 매개 변수를 전달하는 저장 프로 시저를 호출하려고합니다. 그러나, 내 구문이 해제되어 및 문서 또는 단위 테스트 중이 예제를 참조하십시오.매개 변수를 전달하는 sequalize에서 저장 프로 시저 호출

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$ 
+0

를 정확히 당신이 얻을 오류가 무엇입니까? 'appuser'가 문자열 인 경우 구문은 나에게 잘 들립니다. –

+0

감사합니다 @SteffenLanger, 방금 질문을 업데이트했습니다. –

답변

3

난 당신의 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); 
}); 
관련 문제