Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11

Tạo kèo bóng đá c1

Tạo kèo bóng đá c1 - Xác định kèo bóng đá c1 mới

Synopsis

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_parametertogiá trị| =giá trị| Từ hiện tại
    | BẰNG 'Định nghĩa'
    | BẰNG 'obj_file','link_symbol'
    |sql_body...

Mô tả

Tạo kèo bóng đá c1Xác định một thủ tục mới.kèo bóng đá c1 hoặc thay thế thủ tụcsẽ 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.

tham số

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, Inouthoặ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ếtTable_Name.Cột_name%loại. 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.

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àSQLnế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 Invokercho 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 địnhChỉ đị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 địnhkè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ếtrollback, tùy thuộc vào ngôn ngữ).

Cấu hình_parameter
giá trị

Theset15450_15632Đặt từ hiện tạiLư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 Asetmệ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ườngsetlệnh (không cócục bộ) ghi đèsetmệ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 Asetmệ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ếtrollback, tùy thuộc vào ngôn ngữ).

xemsetChươ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ủaASmệ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_filelà 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ớiloadlệnh. Chuỗilink_symbollà 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 đá c1Cá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ữ SQLThủ 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 ... Cascadesẽ 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.

ghi chú

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.

Ví dụ

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);

Tương thích

ATạo kèo bóng đá c1Lệ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.

Gửi hiệu chỉnh

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.