2011-06-08 87 views
0

我有一系列的SQL文件,我想編譯所有這些文件。如果使用底層軟件手動進行操作,則需要很長時間。我嘗試過使用TOAD,但我不喜歡使用破解的軟件。你能幫我執行一個SQL文件嗎?我想寫一個程序爲我做一些事情。如何編譯Oracle SQL腳本?

從SQL/PLUS我試圖創建批處理文件,但在一些使用「/」和我的SQL文件開發者「;」所以它導致sql/plus突然停止編譯。請建議或推薦免費軟件來提供幫助。

「我想應用SQL包,功能,如果它們是無效的重新編譯他們」

我使用Oracle 10g。

謝謝

回答

2
  • 如果您搜索類似TOAD的東西,請嘗試使用Oracle提供的免費工具SQL Developer

  • 如果你想重新編譯你的數據庫現有的源,你可以使用dbms_utility.compile_schema

  • 如果嘗試在批處理安裝幾個文件,SQL*Plus應該爲你工作。確保您的文件格式正確。

+0

如何使用Sql開發人員?我已經擁有它但我沒有任何想法如何編譯900 SQL文件?在TOAD我只是粘貼所有的文件地址並按下運行,它是如何在sql developer.would你解釋更多? – Amir 2011-06-08 13:15:29

+0

我試圖創建一個批處理文件,並在sqlplus中運行,但是我的一些文件沒有遵循正確的格式,這就是爲什麼在編譯過程中它會停止... – Amir 2011-06-08 13:18:54

+0

SQL是一種解釋型語言,沒有「編譯」。你的意思是PL/SQL?也就是說,900個文件價值的PL/SQL函數,過程和包?此外,還有免費版本的蟾蜍,可能會爲你工作。 – 2011-06-08 13:27:28

1

這聽起來像你需要運行一個大的SQL腳本。正確? Sql/Plus應該可以工作,但如果你想要一個免費的IDE,我推薦SQL Developer。這並不完美,但它是更好的免費解決方案之一。

+0

他們是900左右的sql包,在這種情況下怎麼樣?以及如何我可以看到哪一個有效,哪一個是無效的?也請參閱上面的評論 – Amir 2011-06-08 13:16:40

1

「在我的一些SQL文件,開發商用‘/’和‘;’」

您需要持續使用這些有使用部署工具的任何希望。您不希望使用GUI進行部署,因此SQL * Plus是標準目標。一個好的Oracle GUI應該能夠運行SQL * Plus部署腳本。

我一般開始與SET DEFINE OFF否則意想不到的符號(&)引起的問題。 做一些基本的grepping - 任何具有CREATE PACKAGE,CREATE PROCEDURE,CREATE TRIGGER或CREATE TYPE(包括CREATE OR REPLACE)的腳本都應該有一個「/」來執行該語句。如果他們不這樣做,修復它們。

對於第一次運行,雖然,我會拿他們的10個批次,直到我確信他們正確執行。只要加載,我不會擔心編譯錯誤。之後,您可以重新編譯模式中的任何無效對象。

然後檢查USER_ERRORS,看看有什麼仍然是斷開的。