ORACLE COMMON
ORACLE LOOP/CONDITION
ORACLE ADVANCED
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Tìm hiểu Procedure trong Oracle

Trong bài này mình sẽ giới thiệu cú pháp và cách sử dụng procedure trong Oracle.

Procedure là gì? Procedure hay còn gọi là thủ tục, nó dùng để gom một nhóm lệnh SQL cùng xử lý một mục đích cụ thẻ nào đó, sau đó đặt cho nó một cái tên và khai bao tham số truyền vào để sau này mỗi khi cần sử dụng thì ta chỉ cần gọi tên và truyền tham số là được.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Cú pháp Procedure trong Oracle

Trước tiên mình gửi đến các bạn cú pháp để tạo procedure trong Oracle.

CREATE [OR REPLACE] PROCEDURE procedure_name  
    [ (parameter [,parameter]) ]  
IS  
    [declaration_section]  
BEGIN  
    executable_section  
[EXCEPTION  
    exception_section]  
END [procedure_name]; 

Trong đó bạn cần quan tâm đến một số lệnh sau:

  • procedure_name là tên của procedure. 
  • [OR REPLACE]: Khai báo tham số này thì nó sẽ xóa procedure có tên trùng với tên của procedure đang chạy
  • [ (parameter [,parameter]) ] là các tham số truyền vào procedure

Mỗi tham số truyền vào được xác định bởi ba loại như sau:

  • IN: Đây là kiểu mặc định, tham số này sẽ là dữ liệu đầu vào
  • OUT: Tham số này sẽ là dữ liệu đầu ra
  • IN OUT: Là tham số  đặc biệt, vừa là đầu vào vừa là đầu ra, và thường thì giá trị tại đầu ra sẽ bị thay đổi.

2. Ví dụ tạo Procedure trong Oracle

Giả sử mình sẽ tạo một bảng user gồm ID và NAME như sau:

create table user(id number(10) primary key,name varchar2(100));  

Bây giờ mình sẽ viết một thủ tục có nhiệm vụ là thêm mới một record vào bảng User.

Vì bảng user có hai column đó là idname, vì vậy thủ tục này sẽ có hai tham số.

Vì thủ tục này chỉ là thêm record nên không cần dữ liệu đầu ra, nên chỉ cần hai tham số trên là đủ.

create or replace procedure "INSERTUSER"    
    (id IN NUMBER,    
    name IN VARCHAR2)    
is    
begin    
     insert into user values(id,name);    
end;    

Khi bạn chạy lệnh này mà chương trình báo "Procedure created." thì tức là bạn đã tạo thành công.

3. Gọi chương trình Procedure trong Oracle

Tạo xong rồi, bây giờ muốn gọi nó để dùng thì làm cách nào? bạn hãy xem cách mà mình gọi thủ tục mà mình đã tạo ở trên như sau:

BEGIN    
   insertuser(101,'Rahul');  
   dbms_output.put_line('record inserted successfully');    
END; 

Dòng dbms_output.put_line('record inserted successfully'); chỉ là một lệnh hiển thị tin nhắn.

Chạy lệnh này là bạn đã thêm mới một record thành công.

Và đây là ví dụ với tham số OUT.

CREATE OR REPLACE PROCEDURE PROC1(invoicenr IN NUMBER, amnt OUT NUMBER)
AS BEGIN
SELECT AMOUNT INTO amnt FROM INVOICE WHERE INVOICE_NR = invoicenr;
END;

Và cách gọi nó như sau:

DECLARE
amount NUMBER;
BEGIN
PROC1(1000001, amount);
dbms_output.put_line(amount);
END;

4. Xóa Procedure trong Oracle

Nếu bạn muốn xóa một procedure nào đó thì hãy sử dụng lệnh DROP PROCEDURE, nó sẽ giúp giải phóng bộ nhớ cho database, giúp tiết kiệm tài nguyên.

Cú pháp
DROP PROCEDURE procedure_name;  

Ví dụ
DROP PROCEDURE pro1;  

5. Lời kết

Như vậy là mình đã giới thiệu xong cách sử dụng đơn giản của procedure trong Oracle, đây là chức năng khá hay nó giúp DBA cung cấp cho lập trình viên những đoạn code SQL ngắn gọn và xúc tích, thay vì nhận cả một đống câu truy vấn thì chỉ nhận một đoạn ngán mà thôi.

Cùng chuyên mục:

Hàm Hàm ASCII trong Oracle

Hàm Hàm ASCII trong Oracle

Cách sử dụng hàm Hàm ASCII trong 150

Hàm Hàm ASCIISTR trong Oracle

Hàm Hàm ASCIISTR trong Oracle

Cách sử dụng hàm Hàm ASCIISTR trong 150

Hàm Hàm CHR trong Oracle

Hàm Hàm CHR trong Oracle

Cách sử dụng hàm Hàm CHR trong 150

Hàm Hàm COMPOSE trong Oracle

Hàm Hàm COMPOSE trong Oracle

Cách sử dụng hàm Hàm COMPOSE trong 150

Hàm Hàm CONCAT trong Oracle

Hàm Hàm CONCAT trong Oracle

Cách sử dụng hàm Hàm CONCAT trong 150

Hàm Hàm CONVERT trong Oracle

Hàm Hàm CONVERT trong Oracle

Cách sử dụng hàm Hàm CONVERT trong 150

Hàm Hàm DECOMPOSE trong Oracle

Hàm Hàm DECOMPOSE trong Oracle

Cách sử dụng hàm Hàm DECOMPOSE trong 150

Hàm Hàm DUM trong Oracle

Hàm Hàm DUM trong Oracle

Cách sử dụng hàm Hàm DUM trong 150

Hàm Hàm INITCAP trong Oracle

Hàm Hàm INITCAP trong Oracle

Cách sử dụng hàm Hàm INITCAP trong 150

Hàm Hàm INSTR trong Oracle

Hàm Hàm INSTR trong Oracle

Cách sử dụng hàm Hàm INSTR trong 150

Hàm Hàm INSTR2 trong Oracle

Hàm Hàm INSTR2 trong Oracle

Cách sử dụng hàm Hàm INSTR2 trong 150

Hàm Hàm INSTR4 trong Oracle

Hàm Hàm INSTR4 trong Oracle

Cách sử dụng hàm Hàm INSTR4 trong 150

Hàm Hàm INSTRB trong Oracle

Hàm Hàm INSTRB trong Oracle

Cách sử dụng hàm Hàm INSTRB trong 150

Hàm Hàm INSTRC trong Oracle

Hàm Hàm INSTRC trong Oracle

Cách sử dụng hàm Hàm INSTRC trong 150

Hàm Hàm LENGTH trong Oracle

Hàm Hàm LENGTH trong Oracle

Cách sử dụng hàm Hàm LENGTH trong 150

Hàm Hàm LENGTH2 trong Oracle

Hàm Hàm LENGTH2 trong Oracle

Cách sử dụng hàm Hàm LENGTH2 trong 150

Hàm Hàm LOWER trong Oracle

Hàm Hàm LOWER trong Oracle

Cách sử dụng hàm Hàm LOWER trong 150

Hàm Hàm LPAD trong Oracle

Hàm Hàm LPAD trong Oracle

Cách sử dụng hàm Hàm LPAD trong 150

Hàm Hàm LTRIM trong Oracle

Hàm Hàm LTRIM trong Oracle

Cách sử dụng hàm Hàm LTRIM trong 150

Hàm Hàm NCHR trong Oracle

Hàm Hàm NCHR trong Oracle

Cách sử dụng hàm Hàm NCHR trong 150

Top