2010-07-21 122 views
5

好吧,所以我被騙到爲我工作的Oracle數據庫做一些數據庫設計。問題是,我不是一個數據庫人員:-)。我目前正在使用Rational Application Developer(RAD)來建模我的數據庫模式。我理想的做法是生成一系列Word文檔,其中包含來自我的數據庫模式的信息(主要是表格/列信息,約束和觸發器,如Word文檔中的表格)。從SQL文件生成數據字典的工具

我似乎無法找到任何方式與RAD做到這一點,所以我想知道是否有人知道可以採用SQL DDL腳本文件(包含模式的CREATE命令)的工具,並生成Word型報告?

任何指針非常讚賞。

謝謝...

+0

你在用什麼設計ER?許多(大多數?)的ERD工具將爲您生成此輸出。當然,如果你用筆和紙做你的設計,那麼你的運氣不好。 – 2010-07-21 20:24:05

+0

你想在這些報告中提供什麼信息?什麼風格的佈局? – APC 2010-07-21 23:40:42

+0

我正在使用Rational Application Developer來完成我的ERD設計。它能夠開發ERD並生成DDL和Java代碼,但它沒有任何報告工具。 理想情況下,我希望能夠生成包含數據庫設計中每個表的列信息的報告。 – Steve 2010-07-22 17:04:20

回答

4

它可能最簡單的辦法直接對Oracle數據字典表本身運行的命令,而不是試圖解析包含創建語句SQL文件。

例如,爲了獲得在模式X中的所有表,你可以這樣做:

SELECT table_name FROM all_tables WHERE owner = 'X' 

爲了讓所有的列表「T」所有者「U」,你可以這樣做:

SELECT column_name FROM all_tab_columns WHERE table_name = 'T' AND owner = 'U' 

完整的例子

這裏有一個完整的例子,它會讓你獲得所有表併爲其所有屬於「所有者」的表格添加列。它可以用一個單獨的SQL語句來完成:

SELECT t.table_name 
    , c.column_name 
    FROM all_tables t 
    , all_tab_columns c 
WHERE t.TABLE_NAME = c.TABLE_NAME 
    AND t.OWNER  = c.OWNER 
    AND t.OWNER  = 'owner' 
ORDER BY t.TABLE_NAME 
     , c.COLUMN_NAME 

至於獲取數據到Word文檔,我剛剛開始獲取數據到文本文件的第一,那麼你可以使用其他手段來得到它如有必要,可將其轉換爲Word要將其轉換爲文本文件,只需在sql*plus中運行上述命令,並在運行SQL語句之前將其緩存到文本文件(即在sql*plus中發出spool file.txt命令)。然後你的輸出將被寫入一個文件。

+0

不幸的是,我還沒有任何數據庫。我仍然在使用ER設計工具。 – Steve 2010-07-21 19:25:23

+0

@Steve - 你知道你可以運行你自己的Oracle實例嗎?這就是所謂的Oracle Express Edition,你可以在這裏找到它:http://www.oracle.com/technology/products/database/xe/index.html我強烈推薦它,這對你做的事情很好現在,因爲您無需等待DBA創建架構,您可以在沙箱DB上執行此操作。另外,這可以讓你對你的設計進行所有的調整,並在打擾DBA之前像你想要的那樣得到它。如果你這樣做,你可以使用上面的解決方案。 – dcp 2010-07-21 19:31:04

+0

@Steve,您可以將DDL導入Oracle SQL Developer的姊妹工具 - Oracle Data Modeler並獲取關係模型報告,但我不知道這些報告是否有用。 – 2010-07-21 19:32:23

1

Table reports等等,可以從Oracle SQL Developer獲得。但是,需要訪問架構才能獲取相關信息。

如果您對數據庫建模並因此無法訪問工作模式,則可以在由Oracle Data Modeler維護的模型中加載DDL文件(您可能需要先檢查此許可證),然後獲取關係模型報告(大部分反映物理數據庫模型的報告)。

+0

此時,我仍處於ER設計模式。管理員還沒有創建Oracle數據庫,所以我沒有一個實例可以處理。 – Steve 2010-07-21 19:26:30

+0

是的,我從其他評論中發現了這一點。我編輯了我的答案以反映相同 - 您可以嘗試使用Oracle Data Modeler。 – 2010-07-21 19:34:00

+0

+1:我只看到了Oracle Designer的所需輸出,儘管我不記得它是Word還是隻是一個文本文件。 – 2010-07-21 19:43:48