2014-04-10 51 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谁,我?好,谢谢。 :-) –