1.对象类型
CREATE OR REPLACE TYPE Student AS OBJECT (
ID NUMBER(5),
first_name VARCHAR2(20),
last_name VARCHAR2(20),
major VARCHAR2(30),
current_credits NUMBER(3),
-- Returns the first and last names, separated by a space.
MEMBER FUNCTION FormattedName
RETURN VARCHAR2,PRAGMA RESTRICT_REFERENCES(FormattedName, RNDS, WNDS, RNPS, WNPS),
-- Updates the major to the specified value in p_NewMajor.
MEMBER PROCEDURE ChangeMajor(p_NewMajor IN VARCHAR2),PRAGMA RESTRICT_REFERENCES(ChangeMajor, RNDS, WNDS, RNPS, WNPS),
-- Updates the current_credits by adding the number of
-- credits in p_CompletedClass to the current value.
MEMBER PROCEDURE UpdateCredits(p_CompletedClass IN Class),PRAGMA RESTRICT_REFERENCES(UpdateCredits, RNDS, WNDS, RNPS, WNPS),
-- ORDER function used to sort students.ORDER
MEMBER FUNCTION CompareStudent(p_Student IN Student) RETURN NUMBER
);
CREATE OR REPLACE TYPE BODY Student AS
MEMBER FUNCTION FormattedName RETURN VARCHAR2 IS
BEGIN
RETURN first_name || ' ' || last_name;
END FormattedName;
MEMBER PROCEDURE ChangeMajor(p_NewMajor IN VARCHAR2) IS
BEGIN
major := p_NewMajor;
END ChangeMajor;
MEMBER PROCEDURE UpdateCredits(p_CompletedClass IN Class) IS
BEGIN
current_credits := current_credits + p_CompletedClass.num_credits;
END UpdateCredits;
ORDER MEMBER FUNCTION CompareStudent(p_Student IN Student) RETURN NUMBER IS
BEGIN
-- First compare by last names
IF p_Student.last_name = SELF.last_name THEN
-- If the last names are the same, then compare first name
IF p_Student.first_name < SELF.first_name THEN
RETURN 1;
ELSIF p_Student.first_name > SELF.first_name THEN
RETURN -1;
ELSE
RETURN 0;
END IF;
ELSE
IF p_Student.last_name < SELF.last_name THEN
RETURN 1;
ELSE
RETURN -1;
END IF;
END IF;
END CompareStudent;
END;
2.集合
DECLARE
TYPE t_IndexBy IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
TYPE t_Nested IS TABLE OF NUMBER;
TYPE t_Varray IS VARRAY(10) OF NUMBER;
v_IndexBy t_IndexBy;
v_Nested t_Nested;
v_Varray t_Varray;
BEGIN
v_IndexBy(1) := 1;
v_IndexBy(2) := 2;
v_Nested := t_Nested(1, 2, 3, 4, 5);
v_Varray := t_Varray(1, 2);
END;
分享到:
相关推荐
5. **PL/SQL高级特性** - **记录类型**:自定义的数据结构,可以包含多个列。 - **表类型**:定义动态大小的表格,可以存储多个记录。 - **游标变量**:用于存储游标状态,可以在PL/SQL中传递和操作。 - **包**...
10. **帮助文档**:附带的使用说明(如"使用说明.txt"文件)通常会详细介绍软件的安装步骤、基本操作和高级特性,帮助用户快速上手。 此外,"欧普软件园.url"可能是指向一个提供软件下载和相关资源的网站链接,用户...
通过学习这些内容,开发者可以掌握Oracle PL/SQL的高级特性,从而设计和实现更高效、更稳定的数据库应用程序。无论你是数据库管理员、系统架构师还是开发人员,这本书都将为你提供宝贵的指导,助你在Oracle数据库...
《Oracle PL/SQL程序设计(第5版)》是一本全面介绍Oracle 11g中PL/SQL特性的书籍,适合数据库开发人员、管理员及相关从业人员阅读。本书不仅覆盖了PL/SQL的基础知识,还包括了大量的实战经验和高级主题,对于想要深入...
7. **包(Package)**:包是PL/SQL的高级特性,用于封装相关的过程和函数。教材会详细讲解如何定义包、创建包体和包规格,并讨论包的共享状态和私有状态。 8. **异常处理**:理解异常处理机制,包括预定义异常和...
《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...
包是PL/SQL的一个高级特性,它可以组合相关的变量、常量、过程和函数,形成一个逻辑单元。包可以提高代码的组织性,同时提供封装和隐藏实现细节的能力。 10. **EXCEPTION(PL/SQL)** 异常处理是PL/SQL的另一个重要...
- **PL/SQL**:是Oracle数据库的一种过程式语言,结合了SQL查询功能和高级编程语言的特点,用于开发数据库应用。 - **Oracle架构**:包括表空间、用户、模式、表、索引、触发器等组件,理解这些概念对于有效使用PL...
本书详细讲解了Oracle 11g版本中的PL/SQL语言,这涵盖了从基础语法到高级特性的广泛范围。PL/SQL是Oracle数据库中用于创建存储过程、函数、触发器、包等数据库对象的主要工具。第4版特别关注了在Oracle 11g环境下的...
8. **PL/SQL与Oracle特性结合**: - 权限和角色:理解PL/SQL中的权限管理,包括GRANT和REVOKE。 - 视图(VIEW):在PL/SQL中使用视图进行数据抽象。 -索引组织表(IOT)、物化视图(Materialized View):与PL/...
PL/SQL本身涉及的知识点浩瀚、庞杂...当然,最为重要的还是内容本身,本书首先对PL/SQL的理论基础进行了全面的介绍,其次详细讲解PL/SQL开发的所有功能模块、方法和技巧,最后对它的各种高级特性也进行了深入探讨。
7. **包(Package)**:包是PL/SQL的一个高级特性,它可以将相关的变量、常量、过程和函数打包在一起,提供更好的模块化和封装性。 8. **游标表达式(Cursor Expressions)和Bulk Collect**:游标表达式简化了游标...
通过阅读此指南,开发者可以了解如何创建高效的PL/SQL代码,避免常见陷阱,并掌握高级特性的应用。 四、文件“PLSQLDev7.0.pdf” 这个PDF文件很可能是PL/SQL Developer 7.0的官方用户手册或教程,包含了详细的软件...
### Oracle PL/SQL 高级程序设计 #### 第1章:PL/SQL介绍 ##### 1.1 为什么引入PL/SQL语言...此外,PL/SQL的高级特性也为开发者提供了更多灵活的编程选择,使得他们能够在Oracle数据库环境中实现更为复杂的业务逻辑。
PL/SQL为Oracle数据库的开发人员提供了一个强大而灵活的工具集,不仅简化了复杂数据处理任务的实现,还通过其内置的异常处理和模块化特性,提高了应用程序的稳定性和可维护性。掌握PL/SQL对于任何希望在Oracle环境下...
通过这些示例,初学者可以深入了解PL/SQL的语法、流程控制和高级特性,并能实际操作数据库,提升数据库管理和开发能力。每个示例都应配有详细的解释和注释,方便理解其工作原理。务必动手实践,因为编程技能的提升离...
这篇“Oracle经典资料及PL/SQL使用指南”的英文版,将帮助学习者深入理解Oracle数据库的基础概念以及PL/SQL的高级用法。 一、Oracle数据库基础 1. 数据库架构:Oracle数据库采用多层架构,包括物理存储层、逻辑...
2. PL/SQL高级特性 - 包(Package):将相关的过程和函数封装在一起,提高代码复用性。 - 游标:用于处理单行或多行查询结果,是PL/SQL中重要的数据处理工具。 - 表类型和记录类型:允许在PL/SQL中存储和操作集合...
书中不仅讲解了基本概念,还包括了许多高级主题,如并发控制、事务管理、错误处理策略、性能调优技巧,以及PL/SQL在分布式环境下的应用。第五版更新了最新的Oracle版本特性,提供了丰富的示例和实战经验,帮助开发者...