Search

DBeaver Multiple statements 활성화 방법

문서번호 : 11-3320037

Document Information

최초 작성일 : 2025.03.14
최종 수정일 : 2025.03.14
이 문서는 아래 버전을 기준으로 작성되었습니다.
Singlestore: 8.9.12
Singlestore JDBC: 1.2.7
SingleStore Studio: 4.1.0

Goal

DBeaver에서 SingleStore JDBC 를 사용 할 때 allowMultiQueries 가 비활성화 될 시 아래와 같은 문제가 발생합니다.
# 예시 1 # 아래와 같이 프로시저 생성 후 DELIMITER // CREATE OR REPLACE PROCEDURE test.test() AS BEGIN EXECUTE IMMEDIATE 'DROP TABLE IF EXISTS test.t1; CREATE TABLE test.t1 (c1 int)'; END // DELIMITER ; # call procedure 시 에러 발생 call test.test() # 예시 2 # 아래의 예시를 드래그 하여 실행 시 에러 발생 drop table t1; create table t1(c1 int);
SQL
복사
예시 1과 같이 EXECUTE IMMEDIATE 구문을 한번 사용할 때 두 개의 쿼리 실행 하는 procedure 를 생성 후 call procedure 시 SingleStore CLI 와 Studio(3.2.1 이상)에서는 정상 작동 합니다.
!! Studio 3.2.1 이하 버전에서는 아래와 같은 에러가 동일하게 발생합니다.
하지만 DBeaver에서 procedure 실행 시 Multiple statements 에러가 발생 합니다.
# 예시 1의 에러 메세지 SQL Error [1064] [42000]: (conn=22) Unhandled exception Type: ER_PARSE_ERROR (1064) Message: Multiple statements detected in a single query. DROP TABLE IF EXISTS test.t1 Callstack: #0 Line 3 in test.test
SQL
복사
이와 비슷하게 DBeaver에서 예시 2 처럼 drop table t1; create table t1(c1 int); 을 드래그 하여 실행 할 때도 Multiple statements에러가 발생 합니다.
# 예제 2의 에러 메세지 SQL Error [1064] [42000]: (conn=71) Multiple statements detected in a single query. drop table t1
SQL
복사

Solution

Multiple statements에러를 해결하기 위해 allowMultiQueries 활성화 방법 두 가지와 쿼리를 수정하는 방법을 알려드리겠습니다.

allowMultiQueries 활성화 방법

1.
JDBC 드라이버 설정 변경 jdbc:singlestore://{host}[:{port}]/[{database}]?allowMultiQueries=true 위와 같이 URL 템플릿에 allowMultiQueries=true 옵션을 추가하면 allowMultiQueries 를 활성화 할 수 있습니다.
2.
Driver Setting 변경
우 클릭 Edit Connection 선택
Driver properties 선택 allowMultiQueries 값을 true로 변경

쿼리 수정 방법

EXECUTE IMMEDIATE 구문이 한 번에 하나의 쿼리만 실행하도록 분리하면 문제를 방지할 수 있습니다.
DELIMITER // CREATE OR REPLACE PROCEDURE test.test() AS BEGIN EXECUTE IMMEDIATE 'DROP TABLE IF EXISTS test.t1'; EXECUTE IMMEDIATE 'CREATE TABLE test.t1 (c1 int)'; END // DELIMITER ;
SQL
복사

References

History

일자
작성자
비고
2025.03.14
jwy