Một cách tốt để phát triển kèo bóng đá euroPL/PGSQLlà sử dụng trình soạn thảo văn bản mà bạn chọn để tạo các chức năng của bạn và kèo bóng đá euro 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;
kèo bóng đá euro khi chạyPSQL, bạn có thể tải hoặc tải lại tệp định nghĩa chức năng đó bằng:
\ I fileName.sql
Và sau đó kèo bóng đá euro 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 kèo bóng đá euroPL/PGSQLcó công cụ truy cập cơ sở dữ liệu GUI tạo điều kiện kèo bóng đá euro bằng ngôn ngữ thủ tục. Một ví dụ về một công cụ như vậy làPGADMIN, mặc dù những người khác tồn tại. Các 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 và giúp dễ dàng tạo lại và gỡ lỗi các chức năng.
Mã của APL/PGSQLHàm được chỉ định kèo bóng đá euroTạo chức năng
như 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 kèo bóng đá euro 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à kèo bóng đá euro 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 DollarChuỗi theo nghĩa đen (xemPhần 4.1.2.4). kèo bóng đá euro cách tiếp cận chiết xuất bằng đô la, bạn không bao giờ tăng gấp đôi bất kỳ dấu nào, mà thay vào đó hãy cẩn thận chọn một dấu phân cách chạy bằng đô la khác cho mỗi cấp độ làm tổ bạn cần. Ví dụ: bạn có thể viếtTạo chức năng
Lệnh như:
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 đá euro này, bạn có thể sử dụng các dấu ngoặc kép cho các chuỗi theo nghĩa đen đơn giản kèo bóng đá euro các lệnh SQL và$$
Để phân định các đoạn của các lệnh SQL mà bạn đang lắp ráp thà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.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.
Để 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 đá euro 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.
Đối với các chuỗi chữ bên kèo bóng đá euro cơ thể chức năng, ví dụ:
a_output: = '' blah ''; Chọn * Từ người dùng kèo bóng đá euro đó f_name = '' foobar '';
kèo bóng đá euro 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 kèo bóng đá euro đó 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 đá euro cả hai trường hợp.
16503_16602
a_output: = a_output || '' Và tên như '' '' foobar '' '' và xyz ''
Giá trị thực sự được thêm vàoa_output
Sẽ là:và tên như 'foobar' và xyz
.
kèo bóng đá euro cách tiếp cận trích xuất đô la, bạn đã viết:
a_output: = a_output || $$ và tên như 'foobar' và xyz $$
17055_17129$$
.
Khi một dấu ngoặc kép kèo bóng đá euro chuỗi bên kèo bóng đá euro 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 thêm vàoa_output
Sau đó sẽ là:và tên như 'foobar'
.
kèo bóng đá euro cách tiếp cận trích xuất đô la, điều này trở thành:
a_output: = a_output || $$ và tên như 'foobar' $$
Khi bạn muốn hai dấu ngoặc đơn kèo bóng đá euro một hằng số chuỗi (chiếm 8 dấu ngoặc kép) và điều này liền kề với kết thúc của hằng số chuỗi đó (2 nữa). Bạn có thể sẽ chỉ cần điều đó nếu bạn đang viết một hàm tạo ra các chức năng khác, như kèo bóng đá euroVí dụ 41.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_output
Sau đó sẽ là:
Nếu v _... như '' ... '' sau đó trả lại '' ... ''; kết thúc nếu;
kèo bóng đá euro 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 các dấu ngoặc kép vàoa_output
, bởi vì nó sẽ được truy xuất lại trước khi sử dụng.
Để 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 để kèo bóng đá euro raCẢNH BÁO
hoặc mộtERROR
kèo bóng đá euro quá trình tổng hợp một hàm. Một chức năng đã nhận được mộtCảnh báo
Có thể được thực thi mà không cần tạo thêm thông điệp, vì vậy bạn nên kiểm tra kèo bóng đá euro một môi trường phát triển riêng biệt.
Cài đặtplpgsql.extra_warnings
hoặcplpgsql.extra_errors
, khi thích hợp, với"Tất cả"
được khuyến khích kèo bóng đá euro 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_warnings
cho 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"
. Hiện tại danh sách các séc có sẵn bao gồm:
Shadowed_variables
#Kiểm tra xem một tuyên bố có kèo bóng đá euro không một biến được xác định trước đó không.
strict_multi_assignment
#Một sốPL/PGSQLCác lệ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áo
hoặcERROR
Bấ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ành
mệnh đề được sử dụng. Như mộtthành
Câu lệ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
:
23212_23477
Ví dụ dưới đây cho thấy các hiệu ứng của cài đặtplpgsql.extra_warnings
đếnstrict_multi_assignment
:
23681_24380