1. Trang chủ
  2. » Tất cả

tiet2.PPT

19 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 291 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Định nghĩa package Định nghĩa package  Ví dụ Oracle Package là một nhóm gồm nhiều thành phần như hàm, thủ tục, biến, hằng, cursors, hay các kiểu dữ liệu do người dùng tự khai báo….Nhữn

Trang 1

PACKAGE

Trang 2

Xây dựng package

Trang 3

Nội dung

 Tạo Package.

 Gọi package

Xóa Package.

Trang 4

Định nghĩa package

 Định nghĩa package

 Ví dụ

Oracle Package là một nhóm gồm nhiều thành phần như hàm, thủ tục, biến, hằng, cursors, hay các kiểu dữ liệu do người dùng tự khai báo….Những thành phần này được gom chung lại trong một đơn vị

xử lý duy nhất là package để thực hiện một chức năng nào đó

- Gói UTL_FILE : Cho phép truy xuất tới file với lệnh

PL/SQL

- Gói DBMS_OUTPUT: Kết xuất các giá trị trả về từ các hàm, thủ tục,…

Trang 5

Giới thiệu về Package

 Cấu trúc của package

Một package được cấu trúc làm hai phần

- Phần mô tả (specification): Định nghĩa các giao tiếp có thể có của package với bên ngoài

- Phần thân (body): Là các cài đặt cho các giao tiếp có trong phần mô tả ở trên

Trang 6

Giới thiệu về Package

 Các ưu điểm của Package

 Tăng tính phân nhỏ các thành phần

 Nâng cao hiệu suất sử dụng

 Che dấu thông tin

 Đơn giản trong thiết kế ứng dụng

 Cho phép thực hiện quá tải

Trang 7

Lợi ích của việc sử dụng Package

 Cho phép thực hiện quá tải

Khả năng overloading (nạp chồng) là một trong nhưng điểm mạnh nhất của package Đặc điểm này không có đối với những hàm hay thủ tục được tạo ra tiêng lẻ trong cơ sở dữ liệu ( bằng lệnh create procedure hay create function) Overloading đặc biệt hữu ích khi bạn muốn xử lý các trường (field) trong một bảng với nhiều kiểu dữ liệu khac nhau Dưới đây

là một ví dụ về cài đặt các hàm overloading trong một package

Trang 8

Lợi ích của việc sử dụng Package

Bạn có thể chỉ định những thành phần dữ liệu (hay hàm) trong phần đặc tả được phép sử dụng chung (public) hoặc chỉ có tác dụng riêng (private) bên trong package VD một package của chương trình bao gồm 4 hàm Addrec, NewRec, DeleteRec, Checkrec trong đó có 3 hàm đầu được khai báo public, riêng hàm checkRec được khai báo là private, theo cach này lập trình viên khác sử dụng package do bạn thiết kế sẽ không thấy được hàm chechRec  

 Ẩn dấu thông tin

Trang 9

Lợi ích của việc sử dụng Package

Mặc dù phần đặc tả của Package bao gồm rất nhiều thành phần như các biến, hằng, các khai báo hàm, thủ tục hay kiểu dữ liệu do người tự định nghĩa, thì khi thiết kế phần thân (body) không bắt buộc phải cài đặt đầy các thành phần

đã khai báo ở phần đặc tả Cơ chế tác biệt này giúp cho phần đặc tả và phần thân của package khi thiết kế không bị phụ thuộc lẫn nhau Hơn nữa phần thân của package cũng được biên dịch độc lập với phần đặc tả, các nhà phát triển

có thể dễ dàng dò lỗi, kiểm tra hay mở rộng phần thân cho package nhưng vẫn bảo dảm các giao tiếp cung cấp cho ứng dụng nhưng phần đặc tả là không thay đổi

 Đơn gian trong thiết kế ứng dụng

Trang 10

Một số khái niệm cần chú

ý

 Public variable: là biến mà các ứng dụng bên

ngoài có thể tham chiếu tới được

Public procedure: bao gồm các hàm, thủ tục

của package có thể triệu gọi từ các ứng dụng bên ngoài

Global variable: là biến được khai báo trong

toàn bộ package, ứng dụng bên ngoài không tham chiếu được tới biến này

Trang 11

Một số khái niệm cần chú

ý

Public procedure: bao gồm các hàm, thủ tục

của package có thể triệu gọi từ các ứng dụng bên ngoài

Private procedure: là các thủ tục có trong

package và chỉ có thể được triệu gọi bởi các hàm hay thủ tục khác trong package mà thôi

Public procedure: bao gồm các hàm, thủ tục

của package có thể triệu gọi từ các ứng dụng bên ngoài

Private procedure: là các thủ tục có trong

package và chỉ có thể được triệu gọi bởi các hàm hay thủ tục khác trong package mà thôi

Trang 12

Xây dựng Package

 Khai báo phần mô tả package

CREATE [OR REPLACE] PACKAGE package_name

IS/AS

Type and item declarations Subprogram specifications END package_name;

Với:

- package_name: Tên package

- Type and item declarations: Phần khai báo các biến, hằng, cursor trong toàn bộ package

- subprogram specifications: Khai báo các hàm, thủ tục PL/SQL

Trang 13

Định nghĩa package

 Ví dụ

CREATE OR REPLACE PACKAGE MANAGE_STUDENT

AS

/* Type and item declarations */

Last_name VARCHAR2(30);

First_name VARCHAR2(30);

/* Subprogram specifications */

Function insert_Table( Last_name_in VARCHAR2,

First_name_in VARCHAR2) Return NUMBER; Provedure view_Table( Last_name_in VARCHAR2,

First_name_in VARCHAR2); End MANAGE_STUDENT.

Trang 14

Xây dựng Package

 Ví dụ

CREATE or REPLACE PACKAGE Hello

as

Khai báo biến nếu có Khai báo thủ tục, hàm, con trỏ nếu có

procedure hello;

End Hello ;

Trang 15

Xây dựng Package

 Các quy tắc trong thân của package

 Phải có sự so khớp tuyệt đối giữa, cursor, các tiêu đề của procedure, function và nhưngc định nghĩa trong phần mô tả của package với phần thân của package

 Không lặp lại phần khai báo ở trong thân đối với các biến, ngoại lệ hoặc các hằng đã khai báo trong phần mô tả

 Bất kỳ thành phần nào được khái báo trong phần

mô tả cũng có thể được tham chiếu trong phần thân

Trang 16

Xây dựng Package

 Cú pháp khai báo phần thân package

CREATE [OR REPLACE] PACKAGE BODY package_name

IS/AS

Private type and item declarations:

Subprogram bodies:

END package_name;

Với:

package_name: Tên package

type and item declarations : Phần khai báo các biến, hằng, cursor, ngoại lệ và kiểu

subprogram specifications: Khai báo các hàm, thủ tục PL/SQL

Trang 17

Xây dựng Package

 Vi du

CREATE or REPLACE PACKAGE BODY Hello

as

procedure hello

is

begin

dbms_output.put_line(' chao cac ban!');

end;

End Hello ;

Trang 18

Xây dựng Package

 Qui tắc gọi các phần tử trong gói

Tên_gói.Tên_phần_tử

package_name.type_name package_name.item_name package_name.subprogram_name package_name.call_spec_name

Trang 19

Xây dựng Package

Huỷ phần package

Huỷ phần package body

Ví dụ:

DROP PACKAGE Hello;

 Xóa gói

Ngày đăng: 18/04/2022, 17:39