HSQLDB存储的过程通过SQL工具运行是抛出扫描仪错误



来自swing ui我能够一个一个一个。

ALTER CATALOG PUBLIC RENAME TO SOMENAME;
CREATE SCHEMA SOMESCHEMA;
SET DATABASE SQL SYNTAX ORA TRUE;
CREATE PROCEDURE SOMENAME.SOMESCHEMA.SP_FAILED_COUNT(IN i_ssn VARCHAR(100), IN i_page_id NUMBER(10), IN i_ip_address VARCHAR(100), IN i_session_guid VARCHAR(100), OUT o_toomanyfails VARCHAR(2000))
    READS SQL DATA
        BEGIN ATOMIC
        SET o_toomanyfails = 'N';
    END
.;

但是当我从SQL工具运行时,我会收到以下错误

> java -jar sqltool-2.4.1.jar --rcfile=C:my-filessqltool.rc web C:my-fileshello.sql
SEVERE  Rolling back SQL transaction.
Exception in thread "main" java.lang.Error: Error: could not match input
        at org.hsqldb.cmdline.sqltool.SqlFileScanner.zzScanError(Unknown Source)
        at org.hsqldb.cmdline.sqltool.SqlFileScanner.yylex(Unknown Source)
        at org.hsqldb.cmdline.SqlFile.scanpass(Unknown Source)
        at org.hsqldb.cmdline.SqlFile.execute(Unknown Source)
        at org.hsqldb.cmdline.SqlTool.objectMain(Unknown Source)
        at org.hsqldb.cmdline.SqlTool.main(Unknown Source)

我在堆栈溢出中发现了类似的问题。解决方案是添加。在最后。但是即使添加。我遇到相同的错误。

我还添加了"。在第一行以启用原始模式。现在我得到了不同的异常

.
ALTER CATALOG PUBLIC RENAME TO SOMENAME;
CREATE SCHEMA SOMESCHEMA;
SET DATABASE SQL SYNTAX ORA TRUE;
CREATE PROCEDURE SOMENAME.SOMESCHEMA.SP_FAILED_COUNT(IN i_ssn VARCHAR(100), IN i_page_id NUMBER(10), IN i_ip_address VARCHAR(100), IN i_session_guid VARCHAR(100), OUT o_toomanyfails VARCHAR(2000))
    READS SQL DATA
        BEGIN ATOMIC
        SET o_toomanyfails = 'N';
    END
.;

异常

> java -jar sqltool-2.4.1.jar --rcfile=C:my-filessqltool.rc web C:my-fileshello.sql
SEVERE  SQL Error at 'C:my-fileshello.sql' line 2:
".
ALTER CATALOG PUBLIC RENAME TO SOMENAME"
malformed numeric constant: .
org.hsqldb.cmdline.SqlTool$SqlToolException

您通过发出特殊命令开始原始模式。然后,您可以以所需的任何格式输入尽可能多的文本。完成后,输入仅由"。"组成的行,将输入存储到编辑缓冲区中,然后将其发送到数据库服务器进行执行。

请参阅指南:

http://hsqldb.org/doc/2.0/util-guide/sqltool-chapt.html#sqltool_raw-sect

最新更新