首页 文章

hsqldb sqltool rcfile不起作用

提问于
浏览
1

我可以运行命令行SqlTool for HSQLDB连接到数据库并使用 --inlineRc 选项运行SQL语句(并指定数据库url / user / password),但我无法使用 --rcFile 选项使其工作(在文件中使用url / user / password) . 我在这里想念的是什么?

这有效:

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(默认值)并放入我的用户主目录(默认位置),我在这里多次阅读文档:

Chapter 1. SqlTool

似乎没什么用 . 为什么?

2 回答

  • 1

    我终于弄清楚为什么--rcFile参数不起作用 . 我需要在命令行中指定 urlid ,通常作为最后一个参数 . --help选项实际上显示了这一点,但因为它必须是's not required when using the --inlineRc option, I assumed it wasn' . 使用--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没有出色的记录 .

  • 0

    --help 开关 . 这显示了所需的语法 . 您多次阅读的文档中的第一个示例说:

    java -jar $HSQLDB_HOME/lib/sqltool.jar --help
    

相关问题