롤 토토 : 문서 : 9.5 : 롤 토토 9.5 | |||
---|---|---|---|
PostgreSQL : 문서 : 9.5 : 후드 아래 메이저 토토 사이트/PGSQL | Postgre토토 사이트 순위 : 문서 : 9.5 : PL/PG토토 사이트 순위 -토토 사이트 순위 절차 언어 | Chương 40.메이저 토토 사이트/PGSQL - SQLNgôn ngữ thủ tục | NEXT |
Một cách tốt để phát triển trong메이저 토토 사이트/PGSQLlà sử dụng trình chỉnh sửa văn bản mà bạn chọn để tạo các chức năng của bạn và trong 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;
trong 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 đó phát 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 trong메이저 토토 사이트/PGSQLcó công cụ truy cập cơ sở dữ liệu GUI tạo điều kiện phát triển 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 A메이저 토토 사이트/PGSQLHàm được chỉ định trongTạ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 trong 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à trong 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 dẫn bằng đô la"Chuỗi theo nghĩa đen (xemPhần 4.1.2.4). Theo cách tiếp cận chiết xuất của Dollar, 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 vận chuyển đô 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ă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;
Trong 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 trong 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 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 trong thân 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 chuỗi chữ viết bên trong cơ thể chức năng, ví dụ:
a_output: = '' blah ''; Chọn * Từ người dùng trong đó f_name = '' foobar '';
Trong cách tiếp cận trích xuất đô la, bạn chỉ cần viết:
a_output: = 'blah'; Chọn * Từ người dùng trong đó f_name = 'foobar';
Đó chính xác là những gì메이저 토토 사이트/PGSQLtrình phân tích cú pháp sẽ thấy trong cả hai trường hợp.
Khi bạn cần một dấu ngoặc kép trong một hằng số chuỗi bên trong 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.
Trong cách tiếp cận trình điều khiển đô la, bạn sẽ viết:
a_output: = a_output || $$ và tên như 'foobar' và xyz $$
15339_15413$$.
Khi một dấu ngoặc kép trong một chuỗi bên trong 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_outputSau đó sẽ là:và tên như 'foobar'.
Trong 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' $$
16015_16285Ví dụ 40-9. 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ả về '' ... ''; kết thúc nếu;
Trong phương pháp truy 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; $$;
trong đó chúng ta giả sử chúng ta chỉ cần đặt các dấu ngoặc đơn vàoa_output, bởi vì nó sẽ được trích dẫn 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,메이저 토토 사이트/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 để phát raCảnh báohoặc mộtERRORTrong quá trình tổng hợp một hàm. Một chức năng đã nhận được mộtcảnh báoCó 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 trong một môi trường phát triển riêng biệt.
Các kiểm tra bổ sung này được bật thông qua các biến cấu hình메이저 토토 사이트pgsql.extra_warningscho cảnh báo và메이저 토토 사이트pgsql.extra_errorscho 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 chỉ bao gồm một:
Kiểm tra xem một tuyên bố có làm mờ một biến được xác định trước đó không.
Ví dụ sau đây cho thấy hiệu ứng của메이저 토토 사이트pgsql.extra_warningsĐặt thànhShadowed_variables:
Đặt 메이저 토토 사이트pgsql.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
PostgreSQL : 문서 : 9.5 : 후드 아래 메이저 토토 사이트/PGSQL | 롤 토토 : 문서 : 9.5 : 롤 토토 9.5.25 문서화 | PostgreSQL : 문서 : 9.5 : Oracle 젠 토토/SQL에서 포팅 |
메이저 토토 사이트/PGSQLdưới mui xe | Postgre토토 사이트 순위 : 문서 : 9.5 : PL/PG토토 사이트 순위 -토토 사이트 순위 절차 언어 | chuyển từOraclePL/SQL |