Thủ tục lu trữ (stored procedure)

Một phần của tài liệu Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng (Trang 51 - 53)

/ DEFAULT VALUES Lệnh này gồm 2 bớc:

4.1Thủ tục lu trữ (stored procedure)

d. INSERT và giao dịch

4.1Thủ tục lu trữ (stored procedure)

Thủ tục lu trữ (stored procedure) là một khối công việc viết bằng các lệnh T–SQL đợc Oracle Server lu trữ trong cơ sở dữ liệu.

Khi tạo một thủ tục, Oracle Server thông dịch mã nguồn để kiểm tra tính hợp lệ của cú pháp. Nếu không có lỗi cú pháp, Oracle Server sẽ lu mã nguồn vào bảng hệ thống syscomments của cơ sở dữ liệu đó. Khi bạn gọi đến thủ tục lu trữ này lần đầu tiên, Oracle Server biên dịch mã nguồn thành lu đồ thực hiện. Nó giải quyết các tham chiếu đến các đối tợng cơ sở dữ liệu trong thủ tục lu trữ, đảm bảo rằng các tham chiếu tới bảng và cột đều đúng.

Các loại thủ tục lu trữ

Thủ tục hệ thống:Các thủ tục hệ thống đợc tạo ra bằng script chạy ở cuối quá trình cài đặt SQL Server. Các thủ tục này có tên bắt đầu bằng sp_, nằm trên cơ sở dữ liệu master và cho phép tất cả ngời sử dụng trong hệ thống gọi đến nó.

Thủ tục mở rộng: Thủ tục mở rộng cũng nằm trên cơ sở dữ liệu chủ nh- ng chỉ là phần bao quanh giao diện gọi tới một DLL. Tên của thủ tục bắt đầu bằng xp_. Trong các thủ tục mở rộng, có một thủ tục quan trọng là xp_cmdshell (CMD.EXE), nó cho phép bạn gọi đến các chơng trình ngoài, chẳng hạn nh:

EXEC master.dbo.xp_cmdshell ‘dir d:\mssql\binn’

Làm việc với các thủ tục lu trữ

Tạo thủ tục lu trữ

Cú pháp cơ bản của câu lệnh T –SQL tạo một thủ tục lu trữ:

CREATE PROCEDURE procedure –name [group –number] [parameter –list [=parameter –default] ] [OUTPUT] [WITH procedure –options]

AS

Thực hiện thủ tục lu trữ

Để thực hiện một thủ tục lu trữ, ta dùng lệnh EXECUTE:

EXEC tên – thủ –tục

Nếu lệnh duy nhất đang thực hiện là lệnh EXECUTE hoặc đó là lệnh đầu tiên của lô công việc thì không cần phải có EXEC.

Tạo mới/ sửa đổi một thủ tục

Khi sử dụng lệnh CREATE PROC, bạn có thể loại bỏ hoàn toàn các thủ tục cùng tên đã tồn tại. Khi chỉ cần sả đổi một thủ tục cũ mà không thay thế nó, ta dùng lệnh ALTER PROCEDURE.

Giá trị trả về

Các thủ tục lu trữ có tính tiện ích là trả thông tin cho ngời gọi thủ tục. Giá trị trả ra có thể là tập giá trị mặc định status code (mã trạng thái) hay do bạn tự định nghĩa.

Tập kết quả

Cùng với việc trả ra mã trạng thái và giá trị, thủ tục còn có thể trả ra một tập kết quả, chẳng hạn khi bạn đặt một lệnh SELECT trong thân thủ tục.

Các tham số

Thủ tục lu trữ có thể nhận tham số, danh sách tham số đợc đặt sau lệnh CREATE và trớc lệnh AS. Có nhiều cách gọi thủ tục nh: truyền giá trị trực tiếp trong lời gọi thủ tục, truyền giá trị qua một biến.

Giá trị tham số mặc định

Nếu không chỉ ra giá trị mặc định cho một tham số thì các lệnh gọi thủ tục tiếp theo phải cung cấp giá trị tham số. Bạn có thể chỉ ra giá trị mặc định này bằng câu lệnh gán giá trị khi khai báo tham số cho thủ tục. Nếu sau đó bạn cung cấp một giá trị cho tham số này thì thủ tục sẽ dùng giá trị mới thay cho giá trị mặc định.

Các tham số ra

Để chỉ ra một tham số là tham số ra, ta thêm từ khoá OUTPUT hoặc OUT vào cuối lời khai báo biến hoặc bằng cách truyền giá trị tham số vào cho thủ tục nh là một biến, và dùng từ khoá OUTPUT trong lời gọi thủ tục.

Các thủ tục lu trữ tạm thời

Giống nh với bảng, bạn có thể tạo ra các thủ tục tạm thời. Có hai loại thủ tục tạm thời:

- Thủ tục riêng: nếu tên thủ tục bắt đầu bằng dấu (#), thủ tục này chỉ đợc

thực hiện bởi ngời sử dụng trong phiên làm việc hiện thời, ngời sở hữu không đợc phép cấp quyền truy nhập cho những ngời sử dụng khác. (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu Tìm hiểu về hệ quản trị CSDL ORACLE SERVER và xây dựng phần mềm quản lý thi của sinh viên trên mạng (Trang 51 - 53)