Tạo kèo bóng đá c1 - Xác định kèo bóng đá c1 mới
Tạo [hoặc thay thế] kèo bóng đá c1tên
([argmode
] [argname
]argtype
[Mặc định | =default_expr
] [, ...]])) NGÔN NGỮLang_Name
| Biến đổi cho loạitype_name
[, ...] | [Bên ngoài] Invoker bảo mật | [Bên ngoài] Bảo mật Definer | BỘCấu hình_parameter
togiá trị
| =giá trị
| Từ hiện tại | BẰNG 'Định nghĩa
' | BẰNG 'obj_file
','link_symbol
' |sql_body
...
Tạo kèo bóng đá c1
Xác định một thủ tục mới.kèo bóng đá c1 hoặc thay thế thủ tục
sẽ tạo một kèo bóng đá c1 mới hoặc thay thế một định nghĩa hiện có. Để có thể xác định kèo bóng đá c1, người dùng phải cósử dụng
Đặc kèo bóng đá c1ền trên ngôn ngữ.
Nếu bao gồm tên lược đồ, thì kèo bóng đá c1 được tạo trong lược đồ được chỉ định. Nếu không, nó được tạo ra trong lược đồ hiện tại. Tên của thủ tục mới không được khớp với bất kỳ kèo bóng đá c1 hoặc chức năng hiện có nào với cùng loại đối số đầu vào trong cùng một lược đồ. Tuy nhiên, các thủ tục và chức năng của các loại đối số khác nhau có thể chia sẻ một tên (cái này được gọi làquá tải).
Để thay thế định nghĩa hiện tại của một kèo bóng đá c1 hiện có, sử dụngkèo bóng đá c1 hoặc thay thế thủ tục
. Không thể thay đổi tên hoặc loại đối số của một kèo bóng đá c1 theo cách này (nếu bạn đã thử, bạn thực sự sẽ tạo một kèo bóng đá c1 mới, khác biệt).
Khikèo bóng đá c1 hoặc thay thế thủ tục
được sử dụng để thay thế một thủ tục hiện có, kèo bóng đá c1ền sở hữu và kèo bóng đá c1ền của thủ tục không thay đổi. Tất cả các thuộc tính thủ tục khác được gán các giá trị được chỉ định hoặc ngụ ý trong lệnh. Bạn phải sở hữu thủ tục để thay thế nó (điều này bao gồm là thành viên của vai trò sở hữu).
Người dùng tạo kèo bóng đá c1 trở thành chủ sở hữu của thủ tục.
Để có thể tạo một kèo bóng đá c1, bạn phải cócách sử dụng
Đặc kèo bóng đá c1ền về các loại đối số.
Tham khảoPhần 38.4Để biết thêm thông tin về kèo bóng đá c1 viết.
tên
Tên (tùy chọn Lược đồ theo trình độ) của kèo bóng đá c1 để tạo.
argmode
Chế độ của một đối số:in
, out
, Inout
hoặcVariadic
. Nếu bị bỏ qua, mặc định làin
.
argname
Tên của một đối số.
argtype
(Các) loại dữ liệu của các đối số của kèo bóng đá c1 (tùy chọn đủ điều kiện lược đồ), nếu có. Các loại đối số có thể là các loại cơ sở, tổng hợp hoặc miền hoặc có thể tham chiếu loại của cột bảng.
Tùy thuộc vào ngôn ngữ triển khai, nó cũng có thể được phép chỉ địnhPseudo-Types11846_11857cstring
. Các loại giả chỉ ra rằng loại đối số thực tế được chỉ định không đầy đủ hoặc bên ngoài tập hợp các loại dữ liệu SQL thông thường.
Loại cột được tham chiếu bằng cách viết
. Sử dụng tính năng này đôi khi có thể giúp tạo ra một kèo bóng đá c1 độc lập với các thay đổi đối với định nghĩa của bảng.Table_Name
.Cột_name
%loại
default_expr
Một biểu thức được sử dụng làm giá trị mặc định nếu tham số không được chỉ định. Biểu thức phải được ép buộc với loại đối số của tham số. Tất cả các tham số đầu vào theo một tham số có giá trị mặc định cũng phải có giá trị mặc định.
Lang_Name
Tên của ngôn ngữ mà kèo bóng đá c1 được thực hiện. Nó có thể làSQL
, C
, Nội bộ
hoặc tên của ngôn ngữ thủ tục do người dùng xác định, ví dụ:PLPGSQL
. Mặc định làSQL
nếusql_body
được chỉ định. Kèm theo tên trong các trích dẫn đơn được không dùng nữa và yêu cầu trường hợp phù hợp.
Transform cho loạitype_name
[, ...]
Danh sách chuyển đổi cuộc gọi cho thủ tục nên áp dụng. Chuyển đổi Chuyển đổi giữa các loại SQL và các loại dữ liệu cụ thể ngôn ngữ; nhìn thấykèo bóng đá c1 biến đổi. Việc triển khai ngôn ngữ thủ tục thường có kiến thức mã hóa cứng về các loại tích hợp, vì vậy chúng không cần được liệt kê ở đây. Nếu việc triển khai ngôn ngữ thủ tục không biết cách xử lý một loại và không có biến đổi nào được cung cấp, nó sẽ quay trở lại hành vi mặc định để chuyển đổi các loại dữ liệu, nhưng điều này phụ thuộc vào việc thực hiện.
[bên ngoài] Invoker bảo mật
[bên ngoài] bảo mật xác định
Bảo mật Invoker
cho biết kèo bóng đá c1 sẽ được thực thi với các đặc quyền của người dùng gọi nó. Đó là mặc định.bảo mật xác định
Chỉ định rằng kèo bóng đá c1 sẽ được thực thi với các đặc quyền của người dùng sở hữu nó.
Từ khóabên ngoài
được phép phù hợp với SQL, nhưng nó là tùy chọn vì không giống như trong SQL, tính năng này áp dụng cho tất cả các kèo bóng đá c1 không chỉ bên ngoài.
Abảo mật xác định
kèo bóng đá c1 không thể thực hiện các câu lệnh điều khiển giao dịch (ví dụ:cam kết
vàrollback
, tùy thuộc vào ngôn ngữ).
Cấu hình_parameter
giá trị
Theset
15450_15632Đặt từ hiện tại
Lưu giá trị của tham số hiện tại khiTạo kèo bóng đá c1
được thực hiện dưới dạng giá trị được áp dụng khi nhập thủ tục.
Nếu Aset
mệnh đề được gắn vào một thủ tục, sau đó các hiệu ứng của AĐặt cục bộ
Lệnh được thực thi bên trong kèo bóng đá c1 cho cùng một biến bị giới hạn trong kèo bóng đá c1: Giá trị trước của tham số cấu hình vẫn được khôi phục khi thoát thủ tục. Tuy nhiên, một bình thườngset
lệnh (không cócục bộ
) ghi đèset
mệnh đề, giống như nó sẽ làm cho trước trước đóĐặt cục bộ
Lệnh: Các hiệu ứng của lệnh đó sẽ tồn tại sau khi thoát khỏi thủ tục, trừ khi giao dịch hiện tại được quay lại.
Nếu Aset
mệnh đề được đính kèm với một thủ tục, sau đó kèo bóng đá c1 đó không thể thực hiện các báo cáo kiểm soát giao dịch (ví dụ:cam kết
vàrollback
, tùy thuộc vào ngôn ngữ).
xemsetvàChương 20Để biết thêm thông tin về tên và giá trị tham số được phép.
Định nghĩa
Hằng số chuỗi xác định kèo bóng đá c1; Ý nghĩa phụ thuộc vào ngôn ngữ. Nó có thể là một tên thủ tục nội bộ, đường dẫn đến một tệp đối tượng, lệnh SQL hoặc văn bản bằng ngôn ngữ thủ tục.
Thường rất hữu ích khi sử dụng trích dẫn đô la (xemPhần 4.1.2.4) để viết chuỗi định nghĩa thủ tục, thay vì cú pháp trích dẫn đơn bình thường. Không có trích dẫn đô la, bất kỳ trích dẫn hoặc dấu gạch chéo ngược nào trong định nghĩa thủ tục phải được thoát ra bằng cách nhân đôi chúng.
obj_file
, link_symbol
Hình thức này củaAS
mệnh đề được sử dụng cho các kèo bóng đá c1 ngôn ngữ C có thể tải động khi tên thủ tục trong mã nguồn ngôn ngữ C không giống như tên của thủ tục SQL. Chuỗiobj_file
là tên của tệp thư viện được chia sẻ chứa kèo bóng đá c1 c được biên dịch và được hiểu là đối vớiload
lệnh. Chuỗilink_symbol
là biểu tượng liên kết của thủ tục, nghĩa là tên của kèo bóng đá c1 trong mã nguồn ngôn ngữ C. Nếu ký hiệu liên kết bị bỏ qua, nó được coi là giống như tên của thủ tục SQL được xác định.
Khi lặp lạiTạo kèo bóng đá c1
Các cuộc gọi Tham khảo cùng một tệp đối tượng, tệp chỉ được tải một lần mỗi phiên. Để dỡ và tải lại tệp (có lẽ trong quá kèo bóng đá c1 phát triển), hãy bắt đầu một phiên mới.
sql_body
Cơ thể của ANgôn ngữ SQL
Thủ tục. Đây phải là một khối
Bắt đầu nguyên tửtuyên bố
;tuyên bố
; ...tuyên bố
; KẾT THÚC
Điều này tương tự như viết văn bản của cơ thể thủ tục dưới dạng hằng số chuỗi (xemĐịnh nghĩa
ở trên), nhưng có một số khác biệt: hình thức này chỉ hoạt động choNgôn ngữ SQL
, Hằng số chuỗi hoạt động cho tất cả các ngôn ngữ. Biểu mẫu này được phân tích cú pháp theo thời gian định nghĩa thủ tục, dạng hằng số chuỗi được phân tích cú pháp vào thời điểm thực thi; Do đó, hình thức này không thể hỗ trợ các loại đối số đa hình và các cấu trúc khác không thể giải quyết được theo thời gian định nghĩa thủ tục. Mẫu này theo dõi các phụ thuộc giữa kèo bóng đá c1 và các đối tượng được sử dụng trong cơ thể thủ tục, vì vậyDrop ... Cascade
sẽ hoạt động chính xác, trong khi biểu mẫu sử dụng các chữ viết có thể để lại các kèo bóng đá c1 lơ lửng. Cuối cùng, biểu mẫu này tương thích hơn với tiêu chuẩn SQL và các triển khai SQL khác.
xemkèo bóng đá c1 chức năngĐể biết thêm chi tiết về việc kèo bóng đá c1 chức năng cũng áp dụng cho các thủ tục.
Sử dụnggọiĐể thực hiện một thủ tục.
Tạo kèo bóng đá c1 chèn_data (A Integer, B Integer) Ngôn ngữ SQL Như $$ Chèn vào các giá trị TBL (a); Chèn vào các giá trị TBL (b); $$;
hoặc
Tạo kèo bóng đá c1 INSERT_DATA (A Integer, B Integer) Ngôn ngữ SQL Bắt đầu nguyên tử Chèn vào các giá trị TBL (a); Chèn vào các giá trị TBL (b); KẾT THÚC;
và gọi như thế này:
gọi chèn_data (1, 2);
ATạo kèo bóng đá c1
Lệnh được xác định trong tiêu chuẩn SQL. ThePostgreSQLThực hiện có thể được sử dụng theo cách tương thích nhưng có nhiều tiện ích mở rộng. Để biết chi tiết, hãy xem thêmkèo bóng đá c1 chức năng.
Nếu bạn thấy bất cứ điều gì trong 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.