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.
Mục lục
- 1. Cú pháp Procedure trong Oracle
- 2. Ví dụ tạo Procedure trong Oracle
- 3. Gọi chương trình Procedure trong Oracle
- 4. Xóa Procedure trong Oracle
- 5. Lời kết
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.
1 2 3 4 5 6 7 8 9 | 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:
1 | 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à id và name, 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à đủ.
1 2 3 4 5 6 7 | 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:
1 2 3 4 | 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.
1 2 3 4 | 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:
1 2 3 4 5 6 | 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.
1 | DROP PROCEDURE procedure_name; |
1 | 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.
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty