42.5. 錯誤和通知消息字串

本節描述那些可能出現在 ErrorResponse 和 NoticeResponse 消息裡的字串。 每個字串類型有一個單字元標識記號。請注意,任意給定的字串類型在每條訊息裡都應該最多出現一次。

S

嚴重性:該字串的內容是ERRORFATAL, 或者 PANIC(在一個錯誤消息裡),或者 WARNINGNOTICEDEBUGINFOLOG (在一條通知消息裡),或者是這些的某種本地化翻譯的字串。總是會出現。

C

代碼:錯誤的 SQLSTATE 代碼(參閱 Appendix A)。 不能本地化。總是出現。

M

消息:人類可讀的錯誤訊息的主體。這些訊息應該準確並且簡潔(通常是一行)。總是出現。

D

細節:一個可選的從屬錯誤訊息,承載有關問題的更多錯誤消息。 可以是多行。

H

提示:一個可選的有關如何處理問題的建議。它和細節不同的地方是它提出了建議(可能並不合適)而不僅僅是事實。可以是多行。

P

位置:這個字串值是一個十進制 ASCII 整數,資料表示一個錯誤游標的位置, 它是一個指向原始查詢字串的索引。第一個字元的索引是 1,位置是以字元計算而非字元計算的。

p

內部位置:這個域和 P 域定義相同,但是它用於游標的位置指向一個內部生成的命令, 而不是用於客戶端提交的命令。這個字串出現的時候,總是會出現 q 字串。

q

內部查詢:失效的內部生成的命令的文本。 比如,它可能是一個 PL/pgSQL 函數發出的 SQL 查詢。

W

哪裡:一個指示錯誤發生的環境的指示器。目前, 這個參數包含一個活躍的過程語言函數的調用堆棧的追溯和內部生成的查詢。 這個追溯每條記錄一行,最新的在最上面。

F

文件:所報告錯誤在原始碼中的位置。

L

行:報告的錯誤所在的原始碼的位置的行號。

R

過程:報告錯誤的過程在原始碼中的名字。

客戶端負責對顯示訊息進行格式化輸出以符合需要; 特別是它應該根據需要斷開長的行。在錯誤訊息字串裡出現的換行符應該當作一個分段的符號,而不是換行。