Derby SQL Syntax error: Encountered "." when copying from one database to another

Derby SQL Syntax error: Encountered "." when copying from one database to another

我正在使用 Derby DB 并尝试将数据从一个数据库中的 table 复制到另一个数据库中具有相同 table 定义的 table。

在 Derby SQL 中指定 database.scheme.table 的正确语法是什么?

我试过使用以下 select 语句

statement = "INSERT INTO CH003..MHALL..CH_COMPANY SELECT * FROM CH001..MHALL..CH_COMPANY WHERE COMPANY_NUMBER = '" + companyNumber + "'";

但出现错误 Caused by: java.sql.SQLException: Syntax error: Encountered "."在第 1 行,第 22 列。

将代码更改为

 statement = "INSERT INTO CH003.MHALL.CH_COMPANY SELECT * FROM CH001.MHALL.CH_COMPANY WHERE COMPANY_NUMBER = '" + companyNumber + "'";

我收到错误 SQLSyntaxErrorException:语法错误:遇到“。”在第 1 行第 27 列。

在 Derby 中可以这样做吗?你知道正确的语法吗? 谢谢您的帮助。

单个 Derby JDBC 连接恰好连接到一个 Derby 数据库,因此按照您尝试的方式这是不可能的。

但是,您还可以使用其他方法。

例如,您可以使用 SYSCS_UTIL.SYSCS_EXPORT_TABLE 将数据从 table 导出到 CSV 文件,然后您可以打开到目标数据库的连接并使用 SYSCS_UTIL.SYSCS_IMPORT_DATA导入该数据。参见 https://db.apache.org/derby/docs/10.11/ref/rrefexportproc.html and http://db.apache.org/derby/docs/10.11/ref/rrefimportdataproc.html

或者,您可以将该数据读入 Java 程序中的数据结构,例如 ArrayList,然后打开与目标数据库的连接并将其写出。

或者,您可以使用像 Apache DdlUtils 这样的工具将数据从一个 table 复制到另一个:http://db.apache.org/derby/integrate/db_ddlutils.html

我敢肯定还有其他可能性,但由于您没有提供很多关于您要实现的基本目标的背景信息,所以我不会尝试推测为什么一种方法可能更好或者比另一个更糟。