문서번호 : 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 | |