2017-12-14 7 views
1

DbVisualizer 클라이언트가 다음 HSQLDB 절차를 간단하게 만들려고합니다.DbVisualizer에서 HSQLDB 프로 시저 만들기

DROP PROCEDURE IF EXISTS my_procedure; 
CREATE PROCEDURE my_procedure(OUT my_output INTEGER, IN my_input INTEGER) 
     MODIFIES SQL DATA -- NO SQL 
     BEGIN ATOMIC 
       SET my_output = my_input; 
     END 

오류 메시지 :

[CREATE - 0 rows, 0.001 secs] [Code: -5590, SQL State: 42590] unexpected end of statement: required: ; : line: 3 
[END - 0 rows, 0.000 secs] [Code: -5581, SQL State: 42581] unexpected token: END 
... 2 statement(s) executed, 0 rows affected, exec/fetch time: 0.001/0.000 sec [0 successful, 2 errors] 

;의 해석 there is a problem처럼 보이지만 나는 MySQldelimiter에 해당 HSQLDB에서 아무것도 찾을 수 없습니다.

이 문제를 해결하려면 어떻게합니까?

답변

1

DbVisualizer에서 DbVisualizer 특정 구분 기호를 사용할 수 있습니다. Dbvisualizer documentation에서

@delimiter ++; 

DROP PROCEDURE IF EXISTS my_procedure; 
CREATE PROCEDURE my_procedure(OUT my_output INTEGER, IN my_input INTEGER) 
     MODIFIES SQL DATA -- NO SQL 
     BEGIN ATOMIC 
       SET my_output = my_input; 
     END 
; 
++ 
@delimiter ;++ 

:

@delimiter 명령으로 @delimiter 명령

을 사용하여 일시적 DbVisualizer 구분 기호 문 을 변경할 수는 문을 분리를 보낼 때 사용하는 을 하나씩 데이터베이스에 저장합니다. 복잡한 명령문 앞에 사용하고 스크립트에 추가 명령문이 들어 있으면 명령문 다음에 을 사용하십시오. 다음은 예입니다 : 첫 번째 @delimiter 명령은 그 기본 그래서 ++에 구분 기호를 설정

@delimiter ++; 
CREATE OR REPLACE FUNCTION HELLO (p1 IN VARCHAR2) RETURN VARCHAR2 
AS 
BEGIN 
RETURN 'Hello ' || p1; 
END; 
++ 
@delimiter ;++ 
@call ${returnValue||(null)||String||noshow dir=out}$ = HELLO('World'); 
@echo returnValue = ${returnValue}$; 

; 구분 기호는 CREATE 문에서 함수 본문 내에서 사용할 수 있습니다. 그런 다음 ++ 구분 기호를 사용하여 CREATE 문을 종료합니다 ( ). @delimiter 명령은 구분 기호를 다시 설정합니다. 스크립트의 나머지 명령은 입니다.

관련 문제