[SQL] 다람쥐 PostgreSQL의 함수 정의 : 종단되지 않은 달러 인용 된 문자열
SQL다람쥐 PostgreSQL의 함수 정의 : 종단되지 않은 달러 인용 된 문자열
나는 PostgreSQL을 9.3.4 데이터베이스에 대한 다음과 같은 함수 정의를 가지고 :
CREATE OR REPLACE FUNCTION update_modified_timestamp()
RETURNS TRIGGER AS $$
BEGIN
NEW.modified_at = now();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
내가 (3.5.3 또는 3.6) 다람쥐에서 이것을 실행하려고하면, 나는 다음과 같은 오류가 발생합니다 :
Error: ERROR: unterminated dollar-quoted string at or near "$$
BEGIN
NEW.modified_at = now()"
Position: 77
SQLState: 42601
ErrorCode: 0
지금까지 나는 이것이과 같이 함수 본문을 구분하는 작은 따옴표를 사용하여 완화 될 수 배웠습니다 :
CREATE OR REPLACE FUNCTION update_modified_timestamp()
RETURNS TRIGGER AS '
BEGIN
NEW.modified_at = now();
RETURN NEW;
END;
' LANGUAGE plpgsql;
그럼에도 불구하고 나는이 그렇지 않으면 해결할 수없는 경우 알고 싶다 - 나는 철새 이동 경로는이 스크립트를 실행할 수 있으며 다람쥐에 구성된 동일한 JDBC 드라이버를 사용하기 때문에이 가능해야한다 생각합니다.
업데이트 : @a_horse_with_no_name이 오류가 있지만 다람쥐는 SQL 문을 구문 분석하고 데이터베이스에 전송하기 전에 체크에 분할하는 방법으로, JDBC 드라이버와는 아무 상관이 없다고 지적했다. 따라서 나머지 질문은 : 캔 다람쥐는 쿼리 원료 / 구문 분석되지 않은 보내? 나는 꽤 그렇게 할 수있는 방법을 찾을 수 없습니다 검색했습니다.
해결법
-
==============================
1.문이에 분할되지 않도록 당신은 문 구분을 변경할 수 있습니다 :
문이에 분할되지 않도록 당신은 문 구분을 변경할 수 있습니다 :
로 이동 : 세션 → 세션 등록 정보 → SQL → 문 구분
당신이 빈 문자열로 변경할 수 있지만, 당신은 문제의 문장의 실행을 허용 //에 예, 그것을 변경할 수 있습니다.
from https://stackoverflow.com/questions/30211053/postgresql-function-definition-in-squirrel-unterminated-dollar-quoted-string by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 최대 절전 모드로, 어떻게 테이블을 조회 할 수 있습니다 키 값 쌍 ID> 이름의 해시 맵을 반환? (0) | 2020.07.10 |
---|---|
[SQL] SQL 왼쪽 필터링 한 후 행을 잃고 가입 (0) | 2020.07.10 |
[SQL] 쉼표 하나의 열 값을 분리 - SQL SERVER를 (0) | 2020.07.10 |
[SQL] XML 데이터 형식 방법 "값"의 인수 하나는 문자열 리터럴이어야합니다 (0) | 2020.07.10 |
[SQL] 이전과 현재 행의 차이를 찾기 SQL은 (0) | 2020.07.10 |