我可以运行用于HSQLDB的命令行SqlTool,以连接到数据库,并使用-inlineRc选项(并指定数据库url/user/)运行语句,但无法使用-rcFile选项(在文件中使用url/user/)。我在这里错过了什么?
这样做是可行的:
java -classpath /hsqldb/2.3.2/hsqldb-2.3.2.jar:/hsqldb/sqltool/2.3.2/sqltool-2.3.2.jar org.hsqldb.cmdline.SqlTool --sql "\dt" --inlineRc url=jdbc:hsqldb:hsql://localhost:8887/myDb,user=sa,password=“dt”命令的结果是数据库表的列表:
TABLE_SCHEM TABLE_NAME
----------- -----------------------------
PUBLIC USERS
PUBLIC USER_ADDRESS
PUBLIC USER_PHONE这不管用:
java -classpath /hsqldb/2.3.2/hsqldb-2.3.2.jar:/hsqldb/sqltool/2.3.2/sqltool-2.3.2.jar org.hsqldb.cmdline.SqlTool --sql "\dt" --rcFile /hsqldb/setup/sqltool.rc结果是:
SEVERE Error at '--sql' line 1:
"\dt"
We are not connected to a Data Source, but one is required for this action
org.hsqldb.cmdline.SqlTool$SqlToolException/hsqldb/setup/sqltool.rc文件包含:
# This is for a hsqldb Server running with default settings on your local
# computer (and for which you have not changed the password for "sa").
urlid mydbid
url jdbc:hsqldb:hsql://localhost:8887/myDb
username sa
password我尝试过许多变体;使用参数之间的空格或参数之间的“=”,将所有参数放在一行上,就像--inlineRc选项,命名文件sqltool.rc (默认值),并放入我的用户主目录(默认位置),等等。我在这里阅读了几遍文档:
第一章. SqlTool
似乎什么都起不到作用。为什么?
发布于 2016-03-02 00:52:57
我终于明白了为什么--rcFile的论点不起作用。我需要在命令行上指定urlid,通常作为最后一个参数。-帮助选项确实显示了这一点,但是由于在使用--inlineRc选项时不需要--inlineRc选项,所以我假设它是不必要的。当使用--rcFile参数时,这是必要的。我不了解RC文件是如何工作的。
RC文件可以包含多个数据库连接定义,每个定义都由urlid标识。在命令行上使用--rcFile参数时,我需要指定rcFile中的哪个urlid具有数据库连接的参数,即使只有一个定义了参数。使用上面的/hsqldb/setup/sqltool.rc示例,运行SqlTool并列出所有表("\dt")的命令行应该如下所示:
java -classpath /hsqldb/2.3.2/hsqldb-2.3.2.jar:/hsqldb/sqltool/2.3.2/sqltool-2.3.2.jar org.hsqldb.cmdline.SqlTool --sql "\dt" --rcFile /hsqldb/setup/sqltool.rc mydbid不幸的是,在hsqldb.org上没有很好的记录。
发布于 2016-02-27 02:46:11
给--help开关。它显示了所需的语法。您多次阅读的文档中的第一个示例是:
java -jar $HSQLDB_HOME/lib/sqltool.jar --helphttps://stackoverflow.com/questions/35641860
复制相似问题