Đôi khi rất hữu ích khi có một số dữ liệu toàn cầu được tổ chức giữa hai cuộc gọi đến một hàm hoặc được chia sẻ giữa các chức năng khác nhau. Điều này dễ dàng được thực hiện trong soi kèo bóng đá truoctran, nhưng có một số hạn chế phải được hiểu.
Vì lý do bảo mật, soi kèo bóng đá truoctran thực thi các chức năng được gọi bởi bất kỳ vai trò SQL nào trong một trình thông dịch TCL riêng cho vai trò đó. Điều này ngăn chặn sự can thiệp vô tình hoặc độc hại của một người dùng với hành vi của các chức năng soi kèo bóng đá truoctran của người dùng khác.soi kèo bóng đá truoctranHồiBiến TCL. Do đó, hai hàm soi kèo bóng đá truoctran sẽ chia sẻ cùng một biến toàn cầu khi và chỉ khi chúng được thực thi bởi cùng một vai trò SQL.bảo mật xác định
Các chức năng, sử dụngĐặt vai trò
, v.v.) Bạn có thể cần thực hiện các bước rõ ràng để đảm bảo rằng các hàm soi kèo bóng đá truoctran có thể chia sẻ dữ liệu. Để làm điều đó, hãy đảm bảo rằng các chức năng nên giao tiếp được sở hữu bởi cùng một người dùng và đánh dấu chúngBảo mật xác định
. Tất nhiên bạn phải quan tâm rằng các chức năng như vậy không thể được sử dụng để làm bất cứ điều gì ngoài ý muốn.
Tất cả các chức năng PL/TCLU được sử dụng trong một thực thi phiên trong cùng một trình thông dịch TCL, tất nhiên là khác biệt với (các) trình thông dịch được sử dụng cho các chức năng soi kèo bóng đá truoctran. Vì vậy, dữ liệu toàn cầu được tự động chia sẻ giữa các hàm PL/TCLU.
Để giúp bảo vệ các chức năng soi kèo bóng đá truoctran khỏi can thiệp vào nhau, một mảng toàn cầu được cung cấp cho từng chức năng thông quaUPVAR
lệnh. Tên soi kèo bóng đá truoctran của biến này là tên nội bộ của hàm và tên cục bộ làGD
. Nó được khuyến nghị rằngGD
được sử dụng cho dữ soi kèo bóng đá truoctran riêng tư liên tục của một hàm. Chỉ sử dụng các biến toàn cầu TCL thông thường cho các giá trị mà bạn đặc biệt có ý định được chia sẻ giữa nhiều chức năng.GD
Mảng chỉ có soi kèo bóng đá truoctran trong một trình thông dịch cụ thể, vì vậy chúng không bỏ qua các hạn chế bảo mật được đề cập ở trên.)
Một ví dụ về việc sử dụngGD
xuất hiện trongSPI_EXECP
Ví dụ bên dưới.