我是sybase / SQL编程的新手,但我不得不使用可通过Sybase Central(64位)访问的.db文件来处理160个数据库。每个数据库都有几个与不同化学品相关的表格(160种不同的化学品,因此有160个数所有数据库中的表都具有相同的字段(只有数据库名称不同)。无论如何,我能够使用SQL Anywhere 16将单个.db文件导入到sybase,并在单个数据库中执行关系数据库填充(合并和我知道如何访问的内容)。但是,我正在寻找一种方法来合并所有数据库中的所有类似的表,并在我单独导入所有数据库时遇到问题:
SELECT * FROM Database1.Table1 UNION ALL SELECT * FROM Database2.Table1 UNION ALL ......(来自其他数据库的表格)。
在执行上述操作时,我只获得了Database1.Table1的重复行(当我进行一次联合时 - 我得到了Database1.Table1的重复项,两次联合 - 对于Database1.Table1重复三次,依此类推)
所以我想知道是否有人会指导我
找到一种方法将所有160个.db文件(从160个数据库中)从我的计算机目录导入到Sybase中心(一次全部导入,无需导入160次)和
联合所有类似的表格,例如,如果我有化学名称和分子量的单独表格,我希望能够将所有这些表格合并在一个主化学名称和分子量表中。
就像我说的那样,我只是学习这门语言,因为我现在需要它用于我的研究,并会感激任何意见或建议。
非常感谢!
答案 0 :(得分:0)
我不认为您可以使用SQL Anywhere在一个查询中连接到多个DB。您的查询只是访问活动数据库连接的表。
来自SAP: *
SQL Anywhere个人数据库服务器和网络 数据库服务器可以同时管理多个数据每 从应用程序连接必须是一个数据库,但一个 应用程序可以使用单独的连接到不同的数据库,或a 应用程序集可以在不同的数据库上工作,全部通过 相同的数据库服务器。
* http://dcx.sap.com/sa160/en/saintro/multidb-application-architecture.html
但是!你应该能够迭代地编写一个脚本'输出到'[追加]一个文本文件,然后从该DBF中选择所有内容
--Cycle Connections
SELECT *
FROM Table;
OUTPUT TO 'Employees.txt'
APPEND;
-- Next
input into my_Master_DB from my_DBF