Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản tỷ lệ kèo bóng đá: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

42.12. Mẹo phát triển tỷ lệ kèo bóng đáPL/PGSQL

Một cách tốt để phát triển tỷ lệ kèo bóng đáPL/PGSQLIS sử dụng trình soạn thảo văn bản bạn chọn để tạo các chức năng của bạn và tỷ lệ kèo bóng đá một cửa sổ khác, hãy sử dụngPSQLĐể tải và kiểm tra các chức năng đó. Nếu bạn đang làm theo cách này, bạn nên viết chức năng bằng cách sử dụngTạo hoặc thay thế chức năng. Bằng cách đó, bạn chỉ có thể tải lại tệp để cập nhật định nghĩa chức năng. Ví dụ:

Tạo hoặc thay thế chức năng testfunc (số nguyên) Trả về số nguyên dưới dạng $$
          Hẻo lánh
$$ ngôn ngữ plpgsql;

tỷ lệ kèo bóng đá khi chạyPSQL, bạn có thể tải hoặc tải lại tệp định nghĩa chức năng như vậy với:

\ I fileName.sql

và sau đó tỷ lệ kèo bóng đá hành các lệnh SQL ngay lập tức để kiểm tra chức năng.

Một cách tốt để phát triển tỷ lệ kèo bóng đáPL/PGSQLcó công cụ truy cập cơ sở dữ liệu GUI tạo điều kiện tỷ lệ kèo bóng đá bằng ngôn ngữ thủ tục. Một ví dụ về một công cụ như vậy làPGADMIN12544_12701

42.12.1. Xử lý dấu ngoặc kép

Mã của APL/PGSQLHàm được chỉ định tỷ lệ kèo bóng đáTạo chức năngnhư một chuỗi theo nghĩa đen. Nếu bạn viết chuỗi theo nghĩa đen theo cách thông thường với các trích dẫn duy nhất xung quanh, thì bất kỳ trích dẫn đơn nào bên tỷ lệ kèo bóng đá cơ thể chức năng phải được nhân đôi; Tương tự như vậy, bất kỳ dấu gạch chéo ngược nào cũng phải được nhân đôi (giả sử cú pháp chuỗi thoát được sử dụng). Báo giá nhân đôi là tốt nhất tẻ nhạt, và tỷ lệ kèo bóng đá các trường hợp phức tạp hơn, mã có thể trở nên hết sức không thể hiểu được, bởi vì bạn có thể dễ dàng thấy mình cần một nửa tá hoặc nhiều dấu ngoặc kép liền kề hơn. Thay vào đó bạn nên viết cơ thể chức năng dưới dạngđược trích xuất DollarHồiChuỗi theo nghĩa đen (xemPhần 4.1.2.413808_14017Tạo chức năngtỷ lệ kèo bóng đánh AS:

Tạo hoặc thay thế chức năng testfunc (số nguyên) Trả về số nguyên là $ Proc $
          Hẻo lánh
$ Proc $ ngôn ngữ plpgsql;

tỷ lệ kèo bóng đá này, bạn có thể sử dụng các dấu ngoặc kép cho các chuỗi đơn giản tỷ lệ kèo bóng đá các lệnh SQL và$$14351_14467$$, bạn có thể sử dụng$ q $, v.v.

Biểu đồ sau đây cho thấy những gì bạn phải làm khi viết dấu ngoặc kép mà không có trích dẫn đô la. Nó có thể hữu ích khi dịch mã trích dẫn tiền đô la thành một cái gì đó dễ hiểu hơn.

1 dấu ngoặc kép

Để bắt đầu và kết thúc cơ thể chức năng, ví dụ:

Tạo hàm foo () trả về số nguyên là '
          Hẻo lánh
'Ngôn ngữ plpgsql;

Bất cứ nơi nào tỷ lệ kèo bóng đá cơ thể chức năng được trích xuất đơn, dấu ngoặc képphảixuất hiện theo cặp.

2 dấu ngoặc kép

Đối với các chuỗi chữ bên tỷ lệ kèo bóng đá cơ thể chức năng, ví dụ:

a_output: = '' blah '';
Chọn * Từ người dùng tỷ lệ kèo bóng đá đó f_name = '' foobar '';

tỷ lệ kèo bóng đá cách tiếp cận trích xuất đô la, bạn chỉ viết:

a_output: = 'blah';
Chọn * Từ người dùng tỷ lệ kèo bóng đá đó f_name = 'foobar';

Đó chính xác là những gìPL/PGSQLtrình phân tích cú pháp sẽ thấy tỷ lệ kèo bóng đá cả hai trường hợp.

4 dấu ngoặc kép

Khi bạn cần một dấu ngoặc kép tỷ lệ kèo bóng đá một hằng số chuỗi bên tỷ lệ kèo bóng đá cơ thể hàm, ví dụ:

a_output: = a_output || '' Và tên như '' '' foobar '' '' và xyz ''

Giá trị thực sự được gắn vàoa_outputSẽ là:và tên như 'foobar' và xyz.

tỷ lệ kèo bóng đá cách tiếp cận trích xuất đô la, bạn sẽ viết:

a_output: = a_output || $$ và tên như 'foobar' và xyz $$

16450_16524$$.

6 dấu ngoặc kép

Khi một dấu ngoặc kép tỷ lệ kèo bóng đá một chuỗi bên tỷ lệ kèo bóng đá thân hàm liền kề với phần cuối của hằng số chuỗi đó, ví dụ:

a_output: = a_output || '' Và tên như '' '' foobar '' '' '' '

Giá trị được gắn vàoa_outputSau đó sẽ là:và tên như 'foobar'.

tỷ lệ kèo bóng đá phương pháp truy xuất đô la, điều này trở thành:

a_output: = a_output || $$ và tên như 'foobar' $$
10 dấu ngoặc kép

17303_17573Ví dụ 42.10. Ví dụ:

a_output: = a_output || '' Nếu v_ '' ||
    Giới thiệu_KEYS.KIND || '' giống ''''''''''
    || Giới thiệu_KEYS.KEY_STRING || '' '' '' '' '' ''
    Sau đó trả về '' '' '' || Giới thiệu_KEYS.REFERRER_TYPE
    || '' '' '' '; kết thúc nếu; '';

Giá trị củaa_outputSau đó sẽ là:

Nếu v _... như '' ... '' sau đó trả lại '' ... ''; kết thúc nếu;

tỷ lệ kèo bóng đá phương pháp truy xuất đô la, điều này trở thành:

18319_18508

tỷ lệ kèo bóng đá đó chúng ta giả sử chúng ta chỉ cần đặt các dấu ngoặc kép đơn vàoa_output, bởi vì nó sẽ được trích dẫn lại trước khi sử dụng.

42.12.2. Kiểm tra thời gian biên dịch bổ sung và thời gian chạy

Để hỗ trợ người dùng tìm kiếm các trường hợp đơn giản nhưng phổ biến trước khi chúng gây hại,PL/PGSQLCung cấp bổ sungKiểm tra. Khi được bật, tùy thuộc vào cấu hình, chúng có thể được sử dụng để tỷ lệ kèo bóng đá racảnh báohoặc mộtERRORtỷ lệ kèo bóng đá quá trình tổng hợp một hàm. Một chức năng đã nhận được mộtCảnh báo19422_19542

Cài đặtplpgsql.extra_warningshoặcplpgsql.extra_errors, khi thích hợp, đến"Tất cả"được khuyến khích tỷ lệ kèo bóng đá môi trường phát triển và/hoặc thử nghiệm.

Các kiểm tra bổ sung này được bật thông qua các biến cấu hìnhplpgsql.extra_warningscho cảnh báo vàplpgsql.extra_errorsĐối với lỗi. Cả hai đều có thể được đặt thành danh sách kiểm tra được phân tách bằng dấu phẩy,"Không"hoặc"Tất cả". Mặc định là"Không"20178_20230

Shadowed_variables

Kiểm tra xem một tuyên bố có tỷ lệ kèo bóng đá không một biến được xác định trước đó không.

strict_multi_assignment

Một sốPL/PGSQLCác tỷ lệ kèo bóng đánh cho phép gán các giá trị cho nhiều biến tại một thời điểm, chẳng hạn nhưChọn vào. Thông thường, số lượng biến mục tiêu và số lượng biến nguồn sẽ khớp, mặc dùPL/PGSQLsẽ sử dụngnullĐối với các giá trị bị thiếu và các biến bổ sung bị bỏ qua. Kích hoạt kiểm tra này sẽ gây raPL/PGSQLđể ném ACảnh báohoặcERRORBất cứ khi nào số lượng biến mục tiêu và số lượng biến nguồn là khác nhau.

TOUS_MANY_ROWS

Kích hoạt kiểm tra này sẽ gây raPL/PGSQLĐể kiểm tra xem một truy vấn đã cho có trả về nhiều hơn một hàng khithànhmệnh đề được sử dụng. Như mộtthànhCâu tỷ lệ kèo bóng đánh sẽ chỉ sử dụng một hàng, có một truy vấn trả về nhiều hàng nói chung là không hiệu quả và/hoặc không phải

Ví dụ sau đây cho thấy hiệu ứng củaplpgsql.extra_warningsĐặt thànhShadowed_variables:

Đặt plpgsql.extra_warnings thành 'shadowed_variables';

Tạo chức năng foo (f1 int) trả về int as $$
TUYÊN BỐ
F1 int;
BẮT ĐẦU
Trả lại F1;
KẾT THÚC;
$$ Ngôn ngữ plpgsql;
Cảnh báo: Biến "F1" Biến một biến được xác định trước đó
Dòng 3: F1 int;
        ^
Tạo chức năng

Ví dụ dưới đây cho thấy các hiệu ứng của cài đặtplpgsql.extra_warningsđếnstrict_multi_assignment:

22486_23187

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì tỷ lệ kèo bóng đá tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.