Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản kèo bóng đá pháp: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 cho9744_9753Phiên bản hoặc một kèo bóng đá pháp các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

37.2. Mẹo phát triển kèo bóng đá phápPL/PGSQL

Một cách tốt để phát triển kèo bóng đá phápPL/PGSQLlà sử dụng trình chỉnh sửa văn bản của bạn Lựa chọn để tạo các chức năng của bạn và kèo bóng đá pháp một cửa sổ khác, hãy sử dụngPSQLĐể tải và kiểm tra chúng 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ằngTạo hoặc thay thế CHỨC NĂNG. Bằng cách đó, bạn 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;

kèo bóng đá pháp khi chạyPSQL11686_11751

\ I fileName.sql

Và sau đó ngay lập tức ban hành các lệnh SQL để kiểm tra chức năng.

Một cách tốt để phát triển kèo bóng đá phápPL/PGSQLcó công cụ truy cập cơ sở dữ liệu GUI Điều đó tạo điều kiện phát triển kèo bóng đá pháp một ngôn ngữ thủ tục. Một Ví dụ về như một công cụ làPGACCESS, mặc dù những người khác tồn tại. Những công cụ này Thường cung cấp các tính năng thuận tiện như thoát khỏi các trích dẫn đơn lẻ và làm cho nó dễ dàng hơn để tái tạo và gỡ lỗi các chức năng.

37.2.1. Xử lý trích dẫn Marks

Mã của APL/PGSQLHàm được chỉ định kèo bóng đá phápTạ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, Sau đó, bất kỳ trích dẫn nào bên kèo bóng đá pháp cơ thể chức năng phải 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ử Chuỗi thoát cú pháp được sử dụng). Báo giá nhân đôi là tốt nhất tẻ nhạt, và kèo bóng đá pháp các trường hợp phức tạp hơn, mã có thể trở thành hết sức không thể hiểu được, bởi vì bạn có thể dễ dàng tìm thấy Bản thân bạn cần một nửa tá 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"Dollar-Roted"Chuỗi theo nghĩa đen (xemPhần 4.1.2.2). Theo cách tiếp cận về đô la, bạn không bao giờ tăng gấp đôi bất kỳ dấu hiệu nào, nhưng thay vào đó hãy quan tâm đến việc chọn một Dollar-Roting Delimiter cho mỗi cấp độ làm tổ bạn cần. Ví dụ: bạn có thể viếtTạo CHỨC NĂNGlệ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;

kèo bóng đá pháp này, bạn có thể sử dụng dấu ngoặc Chuỗi kèo bóng đá pháp các lệnh SQL và$$đến phân định các đoạn của các lệnh SQL mà bạn đang lắp ráp như chuỗi. Nếu bạn cần trích dẫn văn bản bao gồm$$, bạn có thể sử dụng$ q $,, và cứ thế.

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ó báo giá đô 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ì đó nhiều hơn dễ hiểu.

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 kèo bóng đá pháp cơ thể chức năng được trích xuất đơn, báo giá Marksphảixuất hiện theo cặp.

2 dấu ngoặc kép

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

14914_14984

kèo bóng đá pháp phương pháp trình điều khiển đô la, bạn chỉ cần viết

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

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

4 dấu ngoặc kép

Khi bạn cần một dấu ngoặc đơn kèo bóng đá pháp chuỗi Không đổi bên kèo bóng đá pháp cơ thể chức năng, 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 giống như 'foobar' và xyz.

kèo bóng đá pháp 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 $$

15959_16043$$.

6 dấu ngoặc kép

Khi một dấu ngoặc đơn kèo bóng đá pháp chuỗi bên kèo bóng đá pháp cơ thể chức năng liền kề với cuối chuỗi đó không đổi, ví dụ:

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

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

kèo bóng đá pháp 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

16805_17115Ví dụ 37-6. Ví dụ:

17258_17476

Giá trị củaa_outputSẽ Sau đó là:

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

kèo bóng đá pháp cách tiếp cận trích xuất đô la, điều này trở thành

a_output: = a_output || $$ nếu v _ $$ || Giới thiệu_KEYS.KIND || $$ như '$$
    || Giới thiệu_KEYS.KEY_STRING || $$ '
    sau đó trả lại '$$ | | Giới thiệu_KEYS.REFERRER_TYPE 
    || $$ '; kết thúc nếu; $$;

nơi chúng ta giả sử chúng ta chỉ cần đặt dấu ngoặc đơn vào kèo bóng đá phápa_output, bởi vì nó sẽ được truy xuất lại trước khi sử dụng.