`

PL/SQL高级特性

 
阅读更多
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;
分享到:
评论

相关推荐

    Oracle PL/SQL程序设计(第5版)(下册)第二部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    Oracle 12c PL/SQL程序设计终极指南

    PL/SQL本身涉及的知识点浩瀚、庞杂...当然,最为重要的还是内容本身,本书首先对PL/SQL的理论基础进行了全面的介绍,其次详细讲解PL/SQL开发的所有功能模块、方法和技巧,最后对它的各种高级特性也进行了深入探讨。

    Oracle PL/SQL程序设计(第5版)(下册) 第一部分

    《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。...

    精通Oracle.10g.Pl.SQL编程

    而且还提供了相应的习题和答案,对于PL/SQL开发人员,可能已经非常熟悉PL/SQL的基本开发方法,但可能对PL/SQL高级内容(集合类型,对象类型,LOB对象处理)和oracle9i/oracle10g的PL/SQL新特性知之较少,本书对于这些高级...

    Oracle 8i PL SQL高级程序设计

    Oracle 8i PL SQL高级程序设计(PDF) 本书是深入介绍PL/SQL 语言的专著。可供数据库系统管理员和应用系统设计师参考。众所周知,PL/SQL是用来从各种平台访问Oracle数据库的高级程序设计语言。本书原版自出版以来,...

    Oracle PL_SQL高级程序设计

    这些新的特性包括如何使用内置包,优化策略,以及PL/SQL程序的调试技术等。本书从以下几个方面深入介绍了Oracle8i程序设计的最新特点: 1) Oracle8i和PL/SQL提供的高效开发和运行环境。 2) 使用包DBMS_DEBUG和 ...

    Oracle 8i PL_SQL高级程序设计

    众所周知,PL/SQL是用来从各种平台访问Oracle数据库的高级程序设计语言。本书原版自出版以来,深受专业人员欢迎,仅在美国市场的销售量就多达46 000多本。本书不仅为开发健壮的、基于Web的应用提供了深入的信息,...

    oracle_8i_pl_sql高级程序设计

    众所周知,PL/SQL是用来从各种平台访问Oracle数据库的高级程序设计语言。本书原版自出版以来,深受专业人员欢迎,仅在美国市场的销售量就多达46 000多本。本书不仅为开发健壮的、基于Web的应用提供了深入的信息,...

    Oracle PL/SQL中异常高级特性示例解析

    本文只介绍3种PL/SQL异常的三种高级形态,用于解决Oracle内置异常过少,很多时候不能够满足实际的使用需求。对oracle 高级特性相关知识感兴趣的朋友一起看看吧

    精通Oracle+PL+SQL.pdf(超清书签版)

    与市面上许多pl/sql图书只是纸上谈兵、局限于语法和功能本身不同,本书从实战出发,讲述如何正确、充分地运用语言特性,除了pl/sql的基本功能之外,也包括数据的高效处理、安全、触发器、高效的调试技术等。...

    Oracle 8i PL SQL高级程序设计(PDF)

    众所周知,PL/SQL是用来从各种平台访问Oracle数据库的高级程序设计语言。本书原版自出版以来,深受专业人员欢迎,仅在美国市场的销售量就多达46 000多本。本书不仅为开发健壮的、基于Web的应用提供了深入的信息,...

    PLSQL详细说明手册

    众所周知,PL/SQL是用来从各种平台访问Oracle数据库的高级程序设计语言。本书原版自出版以来,深受专业人员欢迎,仅在美国市场的销售量就多达46 000多本。本书不仅为开发健壮的、基于Web的应用提供了深入的信息,...

    ORACLE PLSQL性能调优诀窍与方法

    本书作者从PL/SQL入手,根据其特性,将其全书组织为4大部分共12章。第一部分(1-3章)从宏观的角度综合概述了系统调优涉及的关键领域,并结合Web应用系统的9大步骤探讨了性能调优问题的定位和根源。第二部分(4-6章)...

    OCI_常用函数说明

     在普通的情况下,用户可以通过SQL和PL/SQL来访问数据库中的数据。ORACLE数据库除了提供SQL和PL/SQL来访问数据库外,还提供了一个第三代程序设计语言的接口,用户可以通过C、COBOL、FORTRAN等第三代语言来编程访问...

    Java数据库技术详解 DOC简版

    第6章 JDBC的高级特性 6.1 PreparedStatement预编译对象 6.2 CallableStatement存储过程对象 6.3 BatchedUpdate对象 6.4 Rowset行集合对象 6.5 JDBC的事务 6.6 本章小结 第7章 JDBC结合Servlet与JSP ...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    还深入介绍了SQL和PL/SQL。为了易于学习,这本独特的Oracle Press指南是这样组织的: 核心概念——Oracle Database 11g主题呈现在按逻辑组织的章节中 主要内容——每章要介绍的具体内容列表 实践练习——演示如何...

    收获不止SQL优化

    13.1.5 使用10046 trace跟踪PL/SQL 368 13.2 PL/SQL优化其他相关扩展 369 13.2.1 编译无法成功 369 13.2.2 通用脚本分享 370 13.3 本章习题、总结与延伸 380 第14章 动手,高级写法应用让SQL飞 381 14.1 具体...

Global site tag (gtag.js) - Google Analytics