Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một kèo bóng đá cúp c2 các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

49.2. Báo cáo kèo bóng đá cúp c2 trong Máy chủ

10832_10924EREPORT,, hoặc anh em họ lớn tuổi của nóELOG. Việc sử dụng Chức năng này đủ phức tạp để yêu cầu một số giải thích.

Có hai yếu tố cần thiết cho mỗi thông kèo bóng đá cúp c2: Mức độ nghiêm trọng Cấp độ (từDebugđếnPanic11243_11419EREPORTBản thân nó chỉ là một vỏ chức năng, tồn tại chủ yếu để thuận tiện cho cú pháp của Làm cho việc tạo tin nhắn trông giống như một cuộc gọi chức năng kèo bóng đá cúp c2 nguồn c mã số. Tham số duy nhất được chấp nhận trực tiếp bởiEREPORTlà mức độ nghiêm trọng. Chính văn bản tin nhắn và bất kỳ yếu tố tin nhắn tùy chọn nào được tạo bởi Gọi các chức năng phụ trợ, chẳng hạn nhưerrmsg, kèo bóng đá cúp c211903_11912cuộc gọi.

Một cuộc gọi điển hình đếnEREPORTcó thể trông giống như thế này:

EREPORT (kèo bóng đá cúp c2,
        (errcode (errcode_division_by_zero),
         errmsg ("Division by Zero")));

Điều này chỉ định mức độ nghiêm trọng của kèo bóng đá cúp c2ERROR(một kèo bóng đá cúp c2 chạy bộ). Theerrcodecuộc gọi Chỉ định mã kèo bóng đá cúp c2 SQLSTATE Sử dụng một macro được xác định trongsrc/bao gồm/utils/errcodes.h. Theerrmsgcuộc gọi cung cấp văn bản tin nhắn chính. Chú ý tập hợp thêm các dấu ngoặc đơn xung quanh phụ trợ Các cuộc gọi chức năng - Đây là những khó chịu nhưng về mặt cú pháp cần thiết.

Đây là một ví dụ phức tạp hơn:

EREPORT (kèo bóng đá cúp c2,
        (errcode (errcode_ambiguter_function),
         errmsg ("hàm %s không phải là duy nhất",
                func_signature_string (funcname, nargs,
                                      Nil, thực tế_arg_types)),
         Errhint ("Không thể chọn chức năng ứng cử viên tốt nhất."
                 "Bạn có thể cần thêm typecasts rõ ràng.")));

Điều này minh họa việc sử dụng mã định dạng để nhúng thời gian chạy giá trị thành một văn bản tin nhắn. Ngoài ra, một tùy chọn"Gợi ý"Tin nhắn được cung cấp.

Các thói quen phụ trợ có sẵn choEREPORTlà:

  • errcode (sqlerrcode)Chỉ định Mã định danh kèo bóng đá cúp c2 SQLSTATE cho điều kiện. Nếu thói quen này không được gọi, định danh kèo bóng đá cúp c2 mặc định làerrCode_Internal_errorKhi mức độ nghiêm trọng của kèo bóng đá cúp c2 làERRORhoặc cao hơn,errcode_warningKhi mức kèo bóng đá cúp c2 làCảnh kèo bóng đá cúp c2, nếu không (choThông kèo bóng đá cúp c2và bên dưới)errCode_successful_completion. kèo bóng đá cúp c2 khi những mặc định này thường thuận tiện, luôn luôn nghĩ liệu chúng có phù hợp Trước khi bỏ quaerrcode ()cuộc gọi.

  • errmsg (const char *msg, ...)Chỉ định văn bản thông báo kèo bóng đá cúp c2 chính và có thể chạy thời gian giá trị để chèn vào nó. Chèn được chỉ định bởiSprintf-Style Mã định dạng. Ngoài Mã định dạng tiêu chuẩn được chấp nhận bởiSprintf, Mã định dạng%MCó thể được sử dụng để chèn thông báo kèo bóng đá cúp c2 được trả về quaStrerrorĐối với giá trị hiện tại củaerrno. [1] %MKhông yêu cầu bất kỳ mục nhập tương ứng nào kèo bóng đá cúp c2 danh sách tham số choerrmsg. Lưu ý rằng chuỗi tin nhắn sẽ được chạy quaGetTextcho Có thể bản địa hóa trước khi mã định dạng được xử lý.

  • ...)giống nhưerrmsg,, ngoại trừ việc chuỗi tin nhắn sẽ không được dịch cũng như không bao gồm kèo bóng đá cúp c2 từ điển thông điệp quốc tế hóa. Điều này nên được sử dụng vì15201_15218trường hợp là có lẽ không đáng để tiếp tục nỗ lực dịch trên.

  • errmsg_plural (const char *fmt_singular, const char *fmt_plural, không dấu dài n, ...)giống nhưerrmsg, nhưng với sự hỗ trợ cho nhiều loại khác nhau Các hình thức số nhiều của thông điệp.fmt_singularlà định dạng số ít tiếng Anh,fmt_pluralLà số nhiều tiếng Anh định dạng,nlà giá trị số nguyên mà xác định dạng số nhiều là cần thiết và các đối số còn lại được định dạng theo chuỗi định dạng đã chọn. Để biết thêm Thông tin xemPhần 50.2.2.

  • errdetail (const char *msg, ...)Cung cấp tùy chọn"Chi tiết"Tin nhắn; Điều này sẽ được sử dụng khi có thêm thông tin không phù hợp để đưa vào thông điệp chính. Chuỗi tin nhắn là được xử lý theo cách tương tự như choerrmsg.

  • errdetail_Internal (const char *msg, ...)giống nhưerrdetail,, ngoại trừ việc chuỗi tin nhắn sẽ không được dịch cũng như không bao gồm kèo bóng đá cúp c2 từ điển thông điệp quốc tế hóa. Điều này nên được sử dụng Để biết chi tiết các thông điệp không đáng để sử dụng nỗ lực dịch thuật trên, ví dụ vì chúng quá kỹ thuật để có ích để hầu hết người dùng.

  • errdetail_plural (const char *fmt_singular, const char *fmt_plural, không dấu dài n, ...)giống nhưerrdetail, nhưng với sự hỗ trợ cho các hình thức số nhiều khác nhau của thông điệp. Để biết thêm thông tin, xemPhần 50.2.2.

  • errdetail_log (const char *msg, ...)giống nhưerrdetailNgoại trừ chuỗi này chỉ đi vào nhật ký kèo bóng đá cúp c2 chủ, không bao giờ khách hàng. Nếu cả haierrdetail(hoặc một kèo bóng đá cúp c2 số tương đương của nó ở trên) vàerrdetail_logđược sử dụng thì một chuỗi đi đến máy khách và cái khác vào nhật ký. Điều này hữu ích cho kèo bóng đá cúp c2 chi tiết quá nhạy cảm với bảo mật hoặc quá cồng kềnh để đưa vào báo cáo được gửi cho khách hàng.

  • errhint (const char *msg, ...)Cung cấp tùy chọn"Gợi ý"Tin nhắn; Điều này sẽ được sử dụng khi đưa ra các đề xuất về cách khắc phục Vấn đề, trái ngược với chi tiết thực tế về những gì đã sai. Các Chuỗi tin nhắn được xử lý theo cách tương tự nhưerrmsg.

  • errcontext (const char *msg, ...)thường không được gọi trực tiếp từEREPORTTrang web tin nhắn; đúng hơn là nó được sử dụng kèo bóng đá cúp c2ERROR_CONTEXT_STACKchức năng gọi lại Cung cấp thông tin về bối cảnh xảy ra kèo bóng đá cúp c2, chẳng hạn như vị trí hiện tại trong hàm PL. Chuỗi tin nhắn được xử lý theo cách tương tự nhưerrmsg. Không giống như các chức năng phụ trợ khác, Điều này có thể được gọi nhiều hơn một lần mỗiEREPORTcuộc gọi; các chuỗi liên tiếp do đó được cung cấp được kết hợp với việc tách các dòng mới.

  • errPoseition (int cursorpos)Chỉ định vị trí văn bản của một kèo bóng đá cúp c2 trong chuỗi truy vấn. Hiện tại nó chỉ hữu ích cho các kèo bóng đá cúp c2 được phát hiện trong từ vựng và Các giai đoạn phân tích cú pháp của xử lý truy vấn.

  • errtable (quan hệ rel)Chỉ định a quan hệ có tên và tên lược đồ nên được đưa vào làm phụ trợ các trường trong báo cáo kèo bóng đá cúp c2.

  • errtableCol (quan hệ rel, int attnum)Chỉ định một cột có tên, tên bảng và Tên lược đồ phải được đưa vào dưới dạng trường phụ trong kèo bóng đá cúp c2 báo cáo.

  • errTableConstraint (quan hệ rel, const char *Conname)Chỉ định một ràng buộc bảng có tên, Tên bảng và tên lược đồ nên được đưa vào dưới dạng các trường phụ trợ Trong báo cáo kèo bóng đá cúp c2. Các chỉ mục nên được coi là các ràng buộc cho mục đích này, liệu họ có liên quan hay khôngPG_Constraintmục nhập. Hãy cẩn thận để vượt qua mối quan hệ heap bên dưới, không phải chính chỉ mục, nhưrel.

  • errdatatype (oid datatypeoid)Chỉ định một kiểu dữ liệu có tên và tên lược đồ dưới dạng các trường phụ trợ trong báo cáo kèo bóng đá cúp c2.

  • const char *Conname)20069_20202

  • errcode_for_file_access ()20274_20427errnoĐể xác định cái nào Mã kèo bóng đá cúp c2 để tạo. Thông thường điều này nên được sử dụng kết hợp với%MTrong thông báo kèo bóng đá cúp c2 chính chữ.

  • errcode_for_socket_access ()là a Chức năng thuận tiện chọn kèo bóng đá cúp c2 SQLState thích hợp Định danh cho kèo bóng đá cúp c2 trong cuộc gọi hệ thống liên quan đến ổ cắm.

  • errHidestMt (bool hid_stmt)có thể được gọi để chỉ định sự triệt tiêu củaTuyên bố:Phần của tin nhắn kèo bóng đá cúp c2 Postmaster đăng nhập. Nói chung điều này là phù hợp nếu văn bản tin nhắn bao gồm câu lệnh hiện tại rồi.

Lưu ý:nhiều nhất là một kèo bóng đá cúp c2 các chức năngerrtable, errTableCol, errTableConstraint, errdatatypehoặcErrdomainConstraintnên được sử dụng kèo bóng đá cúp c2 mộtEREPORT21502_21843PostgreSQL9.3, chỉ tồn tại phạm vi bảo hiểm hoàn chỉnh Đối với các kèo bóng đá cúp c2 trong lớp 23 (vi phạm ràng buộc toàn vẹn), Nhưng điều này có thể sẽ được mở rộng trong tương lai.

Có một hàm cũELOGĐiều đó vẫn được sử dụng rất nhiều. MỘTELOGCALL:

ELOG (cấp, "Chuỗi định dạng", ...);

hoàn toàn tương đương với:

22329_22388

Lưu ý rằng mã kèo bóng đá cúp c2 SQLSTATE luôn được mặc định và Chuỗi tin nhắn không phải là dịch. Vì thế,ELOGChỉ nên được sử dụng cho nội bộ kèo bóng đá cúp c2 và ghi nhật ký gỡ kèo bóng đá cúp c2 cấp thấp. Bất kỳ thông báo nào có khả năng quan tâm đến người dùng thông thường nên trải quaEREPORT. Tuy nhiên, có đủ nội bộ"Không thể xảy ra"Kiểm tra kèo bóng đá cúp c2 trong hệ thống đóELOGvẫn còn rộng rãi đã sử dụng; nó được ưa thích cho những tin nhắn đó cho công chứng của nó Đơn giản.

22987_23046Phần 49.3.

ghi chú

[1]

nghĩa là giá trị hiện tại khiEREPORTCuộc gọi đã đạt được; thay đổi củaerrnokèo bóng đá cúp c2 các thói quen báo cáo phụ trợ sẽ không ảnh hưởng đến nó. Điều đó sẽ không đúng nếu bạn viếtStrerror (errno)rõ ràng kèo bóng đá cúp c2errmsg23755_23802