Thủ tục (Procedure)42

Một phần của tài liệu tìm hiểu oracle i và bài toán quản lý sách (Trang 42 - 45)

1.1.8 .Bảo mật database trong việc phát triển ứng dông24

1.2. SQL*Plus, PL/SQL, Function, Procedure, Package, Trigger33

1.2.6. Thủ tục (Procedure)42

Thủ tục đóng vai trị nh mét “hộp đen” là đối tượng chuyển đổi đầu vào thành đầu ra; thật ra bạn không cần biết diễn biến nh thế nào, miễn sao diễn biến đúng là được rồị Cái người dùng cần là đầu vào và đầu ra dự kiến. Để thủ tục là “hộp đen”, nó phải có cách nhận đầu vào từ chương trình khác và cách gửi trả kết quả. Việc này thực hiện qua tham số, là biến dùng để chuyển thơng tin từ chương trình này sang chương trình khác. Thay cho phần khai báo, thủ tục có phần đề mục (header), là nơi quy định tên thủ tục, tham số và khai báo biến thủ tục. Đề mục thủ tục có dạng thức sau:

PROCEDURE <procedure name>(<parameter1 name><mode><data type>, <parameter1 name><mode><data type>, ……) is

<variable declarations>

Lưu ý: <mode> mô tả cách thay đổi giá trị tham sè trong thủ tục, tham số có thể có 3 chế độ IN, OUT, hoặc IN OUT

Tìm hiểu Oracle9i và bài tốn quản lý sách

+IN: tham số chuyển cho thủ tục dưới dạng giá trị chỉ đọc bất biến trong thủ tục.

+OUT: Tham số là giá trị chỉ ghi, hiển thị bên trái câu lệnh gán trong thủ tục.

+IN OUT kết hợp IN và OUT; tham số chuyển cho thủ tục, giá trị khả biến trong thủ tục.

Nếu khai báo tham số mà không kèm theo đặc tả IN, OUT, hoặc IN OUT, theo mặc định sẽ là tham sè IN. Khi Ên định dạng thức dữ liệu tham sè, ban không đưa giá trị precision hoặc scale vào dạng thức dữ liệu số hoặc độ rộng tối đa cho dạng thức dữ liệu ký tù.

ạ các ví dụ của phần (Procedure) với dữ liệu lấy từ CSDL KDS

- ví dụ sau là thủ tục chèn thông tin vào bảng tác giả theo TENTG, EMAIL,WEBSITE,TIEUSỤ

Trước hết để tạo được thủ này ở đây chúng ta dùng MATG được truyền vào từ 1 sequence có tên là: tgia_sq nh sau:

SQL> create sequence tgia_sq 2 start with 31;

Sequence created. SQL>

+ Sau đó ta tạo thủ tục nh sau:

SQL> create or replace procedure insert_tacgiătentg_in varchar2, 2 email_in varchar2, 3 website_in varchar2, 4 tieusu_in varchar2) 5 is 6 new_matg number(10); 7 begin

8 select tgia_sq.nextval into new_matg from dual; 9 insert into tacgia

10 values(new_matg,tentg_in,email_in,website_in,tieusu_in); 11 end; 12 / Procedure created. SQL> + Thực thi nã nh sau:

SQL> execute insert_tacgiắquang dieú, 'chuotchet1210@yahoọcom', '','');

PL/SQL procedure successfully completed. SQL>

+kiểm nghiệm lại kết quả nh sau: SQL> select *

2 from tacgia

3 where tentg='quang dieú;

MATG TENTG EMAIL WEBSITE TIEUSU ---------- --------------- ---------------------- -------------------- -------------- 32 quang dieu chuotchet1210@yahoọcom

SQL>

+ Ta thấy hàng có MATG=32 đã được chèn vào bảng TACGIA

- thủ tục sau nhập tên sách hiển thị giá của sách (price)

SQL> create or replace procedure g_sach(tens varchar2) 2 is

Tìm hiểu Oracle9i và bài tốn quản lý sách

3 tsach varchar2(100); 4 giasach number(19,4); 5 begin

6 select tensach,gia into tsach,giasach from sach where tensach=tens; 7 dbms_output.put_line(tsach||' '||to_char(giasach));

8 end; 9 /

Procedure created. SQL>

+ test chương trình với tên sách là: Kham pha Windows XP SQL> execute g_sach('Kham pha Windows XP');

Kham pha Windows XP 60000 PL/SQL procedure successfully completed. SQL>

Một phần của tài liệu tìm hiểu oracle i và bài toán quản lý sách (Trang 42 - 45)

Tải bản đầy đủ (DOC)

(89 trang)
w