Postgresql 8.2.23 Tài liệu | ||||
---|---|---|---|---|
Prev | Backward nhanh | Chương 37.PL/PGSQL - SQLNgôn ngữ thủ tục | Chuyển tiếp nhanh | Tiếp theo |
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.
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.
Để 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.
Đố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.
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$$.
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' $$
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.