2014-04-10 84 views
2

什麼是每當sqlerror退出9是什麼意思?這意味着什麼「每當sqlerror退出9」?

數字9代表什麼?我想也許這是一個sqlerror代碼,但我找不到一個數字爲9的sqlerror代碼。

+1

這意味着每當SQLERROR再發生,返回代碼9 –

+0

@juergen d退出我看到人們使用1號出口出0爲好。這個數字代表什麼? – JohnD

+1

不一定是一般的具體含義。也許用戶腳本使用該信息進行進一步處理。也許它根本不用。 –

回答

4

通常退出0意味着成功,非零意味着錯誤。退出代碼的數量指錯誤發生的位置,並且是程序員定義的。如果登錄失敗,你的程序可能會退出1,如果查詢沒有返回至少有一個預期的行,則返回2等。一個包裝程序可以調用這個程序,然後使用返回代碼來查看它是否成功運行。如果不是,你知道代碼中的數字在哪裏失效。如你所使用的那樣,它們被稱爲幻數。誰知道他們的意思,顯然最初的開發者從來沒有至少在評論中定義他們。現在你知道爲什麼應該避免幻數。相反,將返回代碼定義爲常量,並在程序頂部使用有意義的名稱,然後在使用時使用該名稱引用它們。在你之後維護代碼的人將會頌揚你的讚美,而不是詛咒你的存在!在Oracle PL/SQL比如,我會做這樣的事情:

... 
-- Define return codes. 
ERR_NOLOGIN  CONSTANT INTEGER := 1; 
ERR_NOROWS  CONSTANT INTEGER := 2; 
ERR_TOO_MANY_ROWS CONSTANT INTEGER := 3; 
... 
-- Then in your error handing: 
WHENEVER ERROR EXIT ERR_NOLOGIN; -- No magic number makes for 
            -- easier to read code. 
... 
+0

謝謝!這非常有幫助。 – JohnD

+0

你需要更多的點:) – paqogomez

+0

@paqogomez誰,我?好,謝謝。 :-) –