2016-05-16 96 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