Académique Documents
Professionnel Documents
Culture Documents
Chu de 3 PDF
Chu de 3 PDF
• 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
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 5
Các kiểu dữ liệu
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 6
Các kiểu dữ liệu
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 7
Các kiểu dữ liệu
(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
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
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
Qualifier
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 12
Sử dụng biến
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 13
Sử dụng biến
Gán bằng
biểu thức và
biến khác
Gán bằng
câu truy vấn
(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
(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
(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
Tương đương
(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) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 20
Cấu trúc điều khiển
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
(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) 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
(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
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 27
Cursor
Return dạng
Record
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 28
Cursor
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 29
Cursor
• Cursor có tham số
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 30
Cursor
• Cursor có return
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 31
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
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 33
Cursor
(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) 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
(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
(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
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 44
Thủ tục
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
(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
(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
(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
(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ụ
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 55
Quyền thực thi CT con
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 56
Quyền thực thi CT con
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 57
Quyền thực thi CT con
(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 ý
(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
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 68
Đề tài Seminar
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 69
Đề tài Seminar
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 70
Đề tài Seminar
(c) Tuấn Nguyên Hoài Đức - BM.HTTT - Khoa CNTT - ĐH.KHTN Tp.HCM 71
Đề tài Seminar
(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