Vous êtes sur la page 1sur 73

Đại học Khoa học Tự nhiên

Khoa Công nghệ Thông tin


Bộ môn Hệ thống thông tin

Giảng viên : Tuấn Nguyên Hoài Đức


Email : tnhduc@fit.hcmus.edu.vn
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 2
Các kiểu dữ liệu

• Kiểu Dữ liệu cơ sở
– Varchar2(n)
• Chuỗi chiều dài động, tối đa là n ký tự.
• Thuộc tính kiểu này dài tối đa 4000 bytes
– Char(n)
• Chuỗi chiều dài cố định, tối đa là n ký tự.
• Thuộc tính kiểu này dài tối đa 2000 bytes
– Long
• Giống varchar2 nhưng không cần tham số n
• Tối đa 32760 bytes
– Number(m,n)
• Kiểu số, tổng cộng m ký số (tối đa m = 38)
• Phần phân là n ký tự (default = 0, -84 ≤ n ≤127)

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 3
Các kiểu dữ liệu

• Kiểu Dữ liệu cơ sở
– Binary-Integer
• Lưu trữ số nguyên dưới dạng nhị phân
• Miền giá trị : -2147483647 đến 2147483647.
– Boolean
• Lưu trữ giá trị True / False / null
• Không dùng cho thuộc tình của bảng
– Date
• Lưu trữ DL ngày gồm đủ thành phần : Ngày, tháng, năm, giờ, phút,
giây
• Miền giá trị : 1/1/4712BC à 31/12/9999AD
– TimeStamp
• Mở rộng của kiểu Date
• Lưu thông tin chính xác đến phần tỷ giây
– RowID
• Chuyên dùng lưu định danh dòng DL, dài 10 bytes

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 4
Các kiểu dữ liệu

• Kiểu Dữ liệu mở rộng


– User-defined subtype
• Subtype Ten_kieu_moi Is Kieu_DL_Coso [Not Null];
– Kiểu Collection
– Kiểu Record Đề tài
– Kiểu Object Seminar 3.1

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 5
Các kiểu dữ liệu

• Chuyển đổi kiểu dữ liệu


– Chuyển kiểu tường minh
• Chuyển thành chuỗi
– To_Char(so,’dinh_dang’)
• Chuyển thành số
– To_Number(‘chuoi’)
• Chuyển thành ngày
– To_Date(‘chuoi’,’dinh_dang’)
• Định dạng cho ngày tháng và số
– Xem file “Template cho Ngay thang va so.pdf”

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 6
Các kiểu dữ liệu

• Chuyển đổi kiểu dữ liệu


– Chuyển kiểu ngầm định

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 7
Các kiểu dữ liệu

• Chuyển đổi kiểu dữ liệu


– Chuyển kiểu ngầm định

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 8
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 9
Sử dụng biến

• Khai báo và gán biến


Không khởi gán thì
mặc định là bằng null

Khai báo hằng số

• Khai báo default Hai cách khai báo này


tương đương nhau

• Dùng Not Null

Không hợp lệ

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 10
Sử dụng biến

• Phạm vi hiệu lực


Phạm vi sử dụng Phạm vi sử dụng
Phạm vi hiệu lực không qualifier Phạm vi hiệu lực không qualifier

X ngoài X trong

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 11
Sử dụng biến

• Phạm vi hiệu lực


– Qualifier bằng nhãn khối lệnh
Qualifier

– Qualifier bằng tên chương trình con

Qualifier

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 12
Sử dụng biến

• Phạm vi hiệu lực


– Trong cùng khối lệnh, không khai báo 2 biến cùng
tên.
– Tên biến không phân biết hoa / thường
– Trong câu SQL, tên cột ưu tiên hơn tên biến

Xóa mọi dòng trong bảng Emp, chứ không


riêng gì dòng có ename = ‘KING’

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 13
Sử dụng biến

• Gán biến Gán bằng


hằng

Gán bằng
biểu thức và
biến khác

Gán bằng
câu truy vấn

Biều thức này cho


kết quả null vì biến
trong biểu thức
chưa khởi gán

– Không được gán thuộc tính bảng vào biến Boolean

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 14
Sử dụng biến

• Toán tử
– Số học
• +,–,*,/
– Logic
• And , Or , Not
– So sánh
• = , < , <= , > , >=
• <> , != , ^= , ~=
– Nối chuỗi : ||
– Toán tử khác
• Is Null , Like , Between , In

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 15
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 16
Cấu trúc điều khiển

• Cấu trúc IF

Thực hiện khi


- condition = False
- condition = null

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 17
Cấu trúc điều khiển

• Cấu trúc IF
– Tránh những khối If không cần thiết

Bản thân biểu thức Logic đã mang giá trị


True/False và có thể gán vô biến Boolean

Bản thân biến Boolean


đã mang giá trị
True/False như 1 biểu
thức Logic

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 18
Cấu trúc điều khiển

• Cấu trúc Loop

Tương đương

Khai báo nhãn


của khối Loop

Sử dũng nhãn để dừng


cà vòng lặp cha từ trong
vòng lặp con

Đóng nhãn của


khối Loop

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 19
Cấu trúc điều khiển

• Cấu trúc While – Loop Có thể không lặp lần nào

• Cấu trúc Loop – While Buộc phải lặp ít nhất 1 lần

– PL-SQL không có cấu trúc này


– Thay thế :

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 20
Cấu trúc điều khiển

• Cấu trúc For – Loop

Trong vòng
Cận trên và cận For không
dưới của vòng For được gán giá
có thể là biểu thức trị vào biến
hoặc biến nhưng đếm của nó
phải cho ra giá trị
số nguyên

Thay cho chỉ


thị STEP 5
trong vòng For
như ở các
ngôn ngữ khác

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 21
Cấu trúc điều khiển

• Cấu trúc For – Loop Lệnh này hiểu


đây là biến đếm
của vòng For
Trong vòng For,
phải dùng nhãn
khối lệnh để
tham chiếu biến
khai báo bên
ngoài Biến đếm của
vòng For hoàn
toàn độc lập biến
khai báo bên
ngoài (dù cùng
tên)

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 22
Cấu trúc điều khiển

• Lệnh Go To

Nhãn này không


thể dùng cho Go
To vì sau nó
không có lệnh
thực thi được

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 23
Cấu trúc điều khiển

• Lệnh Go To
– Giới hạn sử dụng : Go To không thể
• Nhảy từ khối lệnh ngoài vào
– Cấu trúc If
– Cấu trúc Loop
– Khối lệnh con
• Nhảy giữa những khối If khác nhau
• Nhảy từ khối If sang khối Else
• Nhảy từ trong chương trình con ra ngoài
• Nhảy từ khối bẫy lỗi ra ngoài

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 24
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 25
Cursor

• Cursor là vùng bộ nhớ lưu trữ kết quả của một câu
truy vấn
• Cursor có một tên, thông qua đó ta quản lý và sử
dụng nó
• Có hai loại cursor
– Cursor ngầm định (implicit)
– Cursor tường minh (explicit)

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 26
Cursor

• Cursor ngầm định


• Do Oracle tự động phát sinh với mỗi câu truy vấn,
ins/del/upd bất kể người dùng có biết không
• Người dùng không thể Open, Fetch, Close một
cursor ngầm định
– Nhưng có thể dùng các Cursor Attribute để lấy thông
tin của cursor ngầm định.
– Xem file “Thuoc tinh cua cursor.pdf”
• Cursor ngầm định gần đây nhất được tham chiếu
qua cái tên SQL

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 27
Cursor

• Cursor tường minh


– Khai báo cursor

Return dạng
Record

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 28
Cursor

• Cursor tường minh


– Khai báo cursor
• Cursor có tham số

• Cursor có tham số cùng giá trị mặc định

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 29
Cursor

• Cursor tường minh


– Mở cursor
• Cursor không tham số

• Cursor có tham số

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 30
Cursor

• Cursor tường minh


– Fetch cursor
• Cursor không return

• Cursor có return

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 31
Cursor

• Cursor tường minh


– Đóng cursor

• Sau Close, toàn bộ nội dung cursor xem như biến mất
và không thể dùng nữa. Mọi thao tác trên cursor đã
đóng sẽ phát Exception INVALID_CURSOR
• Nếu muốn dùng ta phải Open lại, và Oracle đọc lại DL
từ CSDL lên

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 32
Cursor

• Cursor tường minh


– Duyệt cursor bằng For

Muốn duyệt cursor bằng


For, trước đó không được
Open cursor

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 33
Cursor

• Cursor tường minh


– Duyệt cursor bằng Loop

Điều kiện dừng

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 34
Cursor

• Biến cursor
– Giống con trỏ trong ngôn ngữ C
• Nhiều biến cursor có thể cùng tham chiếu đến 1
cursor duy nhất (như các con trỏ cùng trỏ đến 1 vùng
nhớ)
• Một khi còn ít nhất 1 biến cursor tham chiếu đến
cursor thì cursor đó vẫn được oracle duy trì
– Ý nghĩa sử dụng
• Dùng để chia sẻ kết quả truy vần giữa các chương
trình con (hàm, thủ tục PL-SQL)

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 35
Cursor

• Biến cursor
– Để dùng biến cursor, cần 2 bước
• Định nghĩa 1 kiểu REF CURSOR
• Định nghĩa biến cursor thuộc kiểu REF CURSOR ấy
– Định nghĩa REF CURSOR
• Loại mạnh (strong type) : Có kiểu trả về
Còn gọi là
Restrictive
type • Loại yếu (weak type) : Không có kiểu trả về

Còn gọi là
Nonrestrictive type

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 36
Cursor

• Biến cursor
– Định nghĩa biến cursor dựa trên REF CURSOR

– Lưu ý
• Có thể định nghĩa REF CURSOR ở mức Package
• Không thể định nghĩa biến cursor ở mức Package
(chỉ được khai báo làm tham số hàm / thủ tục)

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 37
Cursor

• Biến cursor
– Dùng biến cursor làm tham số cho chương trình con

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 38
Cursor

• Biến cursor
– Mở biến cursor

Cùng 1 biến cursor,


có thể mở nhiều lần
• Sau khai báo, biến cursor chưa với những câu truy
có nội dung rõ ràng vì chưa biết vấn khác nhau
câu truy vấn là gì
• Khi Open, cần cung cấp câu truy
vấn xác định rõ nội dung sẽ chứa

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 39
Cursor

• Biến cursor
– Mở biến cursor : Một ví dụ

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 40
Cursor

• Biến cursor
– Fetch biến cursor

Biến Record

Fetch từ biến đã đóng hoặc


Không fetch bằng chưa từng mở sẽ cho
FOR … IN … Exception INVALID_CURSOR
cho biến cursor

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 41
Cursor

• Biến cursor
– Đóng biến cursor

Đóng biến cursor


sau khi không
dùng nữa

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 42
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 43
Thủ tục

• Anonymous PL/SQL blocks

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 44
Thủ tục

• Khai báo thủ tục


Đôi
khi
người
ta
Không dùng từ khóa dùng
Declare như chữ
Anonymous PL/SQL AS
blocks

Nếu trong thân thủ tục có lệnh Return, nó sẽ NOCOPY : Hữu ích khi
không trả ra gì mà sẽ ngừng thủ tục tức khắc tham số là kiểu DL lớn :
Hạn chế thao tác Copy

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 45
Thủ tục

• Ví dụ

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 46
Thủ tục

• Gọi thực thi thủ tục

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 47
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 48
Hàm

• Khai báo hàm

Không dùng từ khóa


Declare như Đôi khi
Anonymous PL/SQL người ta
blocks dùng chữ
AS

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 49
Hàm

• Ví dụ

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 50
Hàm

• Gọi thực thi hàm

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 51
Demo minh họa Chương trình con

• Xem clip
– “Tao proc bang giao dien.mp4”
– “Tao proc bang ma lenh.avi”
– “Debug proc.mp4”
– “Function.avi”

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 52
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 53
Quyền thực thi CT con

• Quyền người viết (Definer Right)


– CT con được gọi và chạy với danh nghĩa người viết,
sử dụng các quyền của người viết
– Chỉ thị AUTHID DEFINER
• Quyền người gọi (Invoker Right)
– CT con được gọi và chạy với danh nghĩa người gọi,
sử dụng các quyền của người gọi
– Chỉ thị AUTHID CURRENT_USER
• Vị trí đặt chỉ thị
– Ngay sau mệnh đề Return phần khai báo hàm
– Ngay sau DS tham số phần khai báo thủ tục

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 54
Quyền thực thi CT con

• Ví dụ

• Ích lợi của Invoker Right


– Đặc biệt hữu ích khi các bảng cùng tên được lưu ở
nhiều Schema khác nhau

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 55
Quyền thực thi CT con

• Ích lợi của Invoker Right


– Ví dụ : Tính toán doanh số bán hàng của từng NV
• Definer Right

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 56
Quyền thực thi CT con

• Ích lợi của Invoker Right


– Ví dụ : Tính toán doanh số bán hàng của từng NV
• Invoker Right

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 57
Quyền thực thi CT con

• Phối hợp Invoker Right và Definer Right


Invoker
Right

Definer DL nhạy cảm, chỉ Headquarter có quyền truy


Right xuất, còn WEST và EAST thì không

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 58
Một số lưu ý

• Tham số

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 59
Một số lưu ý

• Forward daclaration
– Dùng trong Package (tt)

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 60
Một số lưu ý

• Vị trí khai báo


– Thủ tục / Hàm có thể khai báo trong khối Declare,
nhưng phải nằm ở cuối khối
– Khai báo thủ tục như sau là sai vị trí

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 61
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 62
Một số lưu ý

• Forward declaration
– Đặc biệt hữu dụng khi 2 hàm/thủ tục gọi lẫn nhau

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 63
Một số lưu ý

• Forward daclaration
– Dùng trong Package

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 64
Một số lưu ý

• Forward daclaration
– Dùng trong Package (tt)

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 65
Một số lưu ý

• Overloading
– Oracle cho phép khai báo nhiều CT con cùng tên,
miễn là tham số thỏa một trong các điều sau
• Khác số lượng
Chỉ khác kiểu DL
• Khác thứ tự con là chưa đủ
• Khác kiểu DL cơ sở.
– Chỉ các CT con trong Package mới có thể Overload

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 66
Nội dung trình bày

• Kiểu dữ liệu
• Sử dụng biến
• Cấu trúc điều khiển
• Cursor
• Chương trình con
– Thủ tục
– Hàm
– Quyền thực thi Chương trình con
– Một số lưu ý
• Đề tài Seminar

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 67
Đề tài Seminar

• Đề tài 3.1 : Kiểu DL mở rộng


– Collection • Khái niệm
• Table • Cấu trúc
• Tình huống sử dụng
• Varray • Khai báo và sử dụng
• Chỉ thị %type và %rowtype
• Record • Collection Method
– Object
• Khái niệm
• Attribute • Cấu trúc
• Method • Tình huống sử dụng
• Khai báo và sử dụng
– Sequence • Khái niệm
• Sử dụng constructor
• Forward type definition
• Tình huống sử dụng • Ins/del/upd/sel Objects
• Khai báo và sử dụng

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 68
Đề tài Seminar

• Đề tài 3.2 : Hàm tiện ích PL-SQL • Trường hợp xử dụng


• Diễn giải tham số
– Hàm xử lý lỗi • Ví dụ minh họa, cho thầy rõ kết quả
– Hàm xử lý số (22 hàm)
– Hàm xử lý chuỗi (24 hàm)
– Hàm xử lý ngày tháng (8 hàm)
– Hàm ép kiểu (9 hàm)
– Hàm tham chiếu đối tượng (3 hàm)
– Hàm Misc (17 hàm)
• Danh sách các hàm
– Xem file “Cac ham tien ich he thong dinh nghia san.pdf”

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 69
Đề tài Seminar

• Đề tài 3.3 : Xử lý lỗi trong PL-SQL


– Khái niệm Excception
– Tình huống sử dụng và ích lợi
– Những Exception hệ thống định nghĩa sẵn
– Exception người dùng định nghĩa và cách sử dụng
• Lưu ý lệnh Exception_Init, lệnh Raise
– Quy tắc lan tỏa (propagate) Exception
– Tái phát (reraise) Exception
– Giải quyết (handle) Exception
• Luu ý SQLCODE và SQLERRM

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 70
Đề tài Seminar

• Đề tài 3.4 : Package


– Khái niệm Package
– Tình huống sử dụng và ích lợi
– Package Spec
– Package Body
– Phần tử (Item) Public và Private
– Tính Overload
– Một số Package dựng sẵn :
• STANDARD , DBMS_Standard , DBMS_Alert ,
DBMS_Output , DBMS_Pipe , UTL_File , UTL_HTTP

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 71
Đề tài Seminar

• Đề tài 3.5 : Điều khiển truy xuất đồng thời


– Khai báo transaction
– Sử dụng Commit / Rollback / SavePoint
– Rollback ngầm định (Implicit Rollback)
– Lệnh Set Transaction
• Khái niệm
• Các mức cô lập • Kỹ thuật
• Ví dụ minh họa
– Cấp độ khóa
• Khóa ngầm định (Implicit locking - Default locking)
• Khóa tường minh (Explicit locking)
– Autonomous Transaction
• Ích lợi và cách khai báo
• Cách kiểm soát

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 72
Hết chủ đề 3

(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 73

Vous aimerez peut-être aussi