"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Goose를 사용하여 PostgreSQL 함수의 \"종료되지 않은 달러 인용 문자열\" 오류를 해결하는 방법은 무엇입니까?

Goose를 사용하여 PostgreSQL 함수의 \"종료되지 않은 달러 인용 문자열\" 오류를 해결하는 방법은 무엇입니까?

2024년 11월 17일에 게시됨
검색:236

How to Resolve \

Unterminate Dollar-Quoted String: 세미콜론으로 오류 해결

Goose를 사용하여 PostgreSQL 함수를 생성하는 맥락에서 이 문서에서는 오류를 다룹니다. 함수 본문 내에서 복잡한 명령문을 처리하는 동안 발생했습니다. pq 라이브러리에서 보고된 오류는 달러로 묶인 문자열이 종료되지 않은 상태로 남아 있음을 나타냅니다.

이 문제를 해결하려면 세미콜론이 포함된 복잡한 명령문에는 "-- gooseStatementBegin" 및 "-- goose를 사용한 주석이 필요합니다. Goose 문서에 따른 "StatementEnd" 주석. 이러한 주석은 Goose가 SQL 문 내에 포함된 세미콜론을 관리하여 libpq 오류를 방지하는 데 도움이 됩니다.

제공된 코드 샘플에 이러한 주석을 적용하면 오류가 해결됩니다.

CREATE OR REPLACE FUNCTION add_userlocation(user_id INT, location_id INT) RETURNS VOID AS
$BODY$
--  goose StatementBegin
BEGIN
    LOOP
        UPDATE userslocations SET count = count 1 WHERE userid = user_id AND locationid = location_id;
    IF found THEN
        RETURN;
    END IF;
    BEGIN
        INSERT INTO userslocations(userid,locationid, count) VALUES (user_id, location_id, 1);
           RETURN;
       EXCEPTION WHEN unique_violation THEN
    END;
   END LOOP;
--  goose StatementEnd
END;
$BODY$
LANGUAGE plpgsql;
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3