Mysql 在DbVisualizer中创建HSQLDB过程
我正试图通过DbVisualizer客户端创建以下简单的Mysql 在DbVisualizer中创建HSQLDB过程,mysql,sql,stored-procedures,hsqldb,dbvisualizer,Mysql,Sql,Stored Procedures,Hsqldb,Dbvisualizer,我正试图通过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;
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]
它看起来像是在解释
,但我在HSQLDB
中找不到与MySQl
分隔符
等价的内容
如何解决这个问题?在DbVisualizer中,我可以使用DbVisualizer特定的分隔符
@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 ++;
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}$;
第一个@delimiter命令将分隔符设置为++,以便
违约分隔符可以在CREATE中的函数体中使用
陈述然后使用++分隔符结束CREATE语句,
另一个@delimiter命令将分隔符设置回;对于
脚本中的其余命令