Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在DbVisualizer中创建HSQLDB过程_Mysql_Sql_Stored Procedures_Hsqldb_Dbvisualizer - Fatal编程技术网

Mysql 在DbVisualizer中创建HSQLDB过程

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;

我正试图通过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]
它看起来像是在解释
,但我在
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命令将分隔符设置回;对于 脚本中的其余命令