2016-05-16 123 views
0

我对sybase/SQL编程有点新,但是我必须使用可通过Sybase Central访问的.db文件(64位)。每个数据库都有几张与不同化学品有关的表格(160种不同的化学品,因此有160种数据库)所有数据库中的表具有相同的字段(只有数据库名称不同)。无论如何,我能够使用SQL Anywhere 16将各个.db文件导入到sybase中,并在单个数据库中执行关系数据库的任务(我知道如何在访问中进行合并和填充)。不过,我正在寻找一种方式来合并来自所有数据库中所有类似的表,并遇到了一个问题,当我单独进口的所有数据库和做的:使用SQL Anywhere 16将多个.db文件导入到sybase并合并表

SELECT * FROM Database1.Table1 UNION ALL SELECT * FROM Database2.Table1 UNION ALL ...(来自其他数据库的表格)。

虽然做上述,我刚刚只是重复行的Database1.Table1(当我做了一次工会 - 我重复了Database1.Table1,工会两次 - 一式三份Database1.Table1,等等)

所以我想知道,如果有人指导我

  1. 找到一种方法,从我的电脑目录中的所有160个db文件(160个数据库)导入到Sybase中心(一次性,而无需将其导入160次)和

  2. 合并所有类似的表,如果我有单独的化学名称和分子量表,我希望能够将所有这些表合并到一个主化学名称和分子量表中。

就像我说的,我只是在学习这门语言,因为我现在需要它来进行我的研究,并希望得到任何意见或建议。

非常感谢!

回答

0

我不认为您可以使用SQL Anywhere在一个查询中连接到多个数据库。您的查询只是打到活动数据库连接的表中。

从SAP: *

无论是SQL Anywhere个人数据库服务器和网络数据库 服务器可以同时管理多个数据库。每个应用程序的 连接都必须连接到单个数据库,但应用程序可以使用单独的连接到不同的数据库,或者一组应用程序可以在不同的数据库上工作,全部通过 相同的数据库服务器。

* 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 

http://dcx.sybase.com/1201/en/dbusage/load-s-4696303.html

+0

谢谢您的回复[添加]一个文本文件,然后选择一切。目前,对于每种化学品,我有五个不同的表格(T1,T2,T3,T4,T5)。所有160种化学品的表格格式都相同。所以我应该写五个不同的脚本来创建五个不同的主表?另外,虽然提到“表”,我应该包括“Database1.Table”吗? 'Append'是从早期表格底部的新数据库中添加每个新表格吗?另外,对于my_master_table,我应该创建一个包含所有所需字段的主表,还是我可以使用我的一个数据库表作为主表?非常感谢您的帮助, –

+0

Ram,append将数据添加到输出文件。它通常用于导出数据,有时用于数据库迁移。你有多少用户,人们如何连接到数据。您多长时间需要汇总数据?如果您没有访问问题,或者在将数据存储在一个可能是最佳路线的数据库中没有任何问题。 – EoinS

+0

诚实的脚本可以非常容易。如果你不习惯编写脚本,你可以诚实地将所有数据库名称用查询导出到文本中,然后粘贴到excel中,然后编写一个公式并向下拖动。如果您需要帮助写作,我们需要获取表格的详细信息等。您可以拥有5个主表,或者您可以根据您的需要对其进行聚合 – EoinS