草庐IT

二十分

全部标签

Oracle学习笔记二十五:包的定义与调用

一、包的作用•Oracle中包的概念与Java中包的概念非常类似,只是Java中的包是为了分类管理类,但是关键字都是package。•在一个大型项目中,可能有很多模块,而每个模块又有自己的过程、函数等。而这些过程、函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起的,即Procedures中),这些非常不方便查询和维护,甚至会发生误删除的事件。所以通过使用包就可以分类管理过程和函数。•包中还可以自定义自定义类型,从而在过程和函数中可以直接使用自定义变量。二、包的构成• 包规范部分• 包体部分--包规范定义语法createorreplacepackage包名as|is--定义存储过程

Oracle学习笔记二十五:包的定义与调用

一、包的作用•Oracle中包的概念与Java中包的概念非常类似,只是Java中的包是为了分类管理类,但是关键字都是package。•在一个大型项目中,可能有很多模块,而每个模块又有自己的过程、函数等。而这些过程、函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起的,即Procedures中),这些非常不方便查询和维护,甚至会发生误删除的事件。所以通过使用包就可以分类管理过程和函数。•包中还可以自定义自定义类型,从而在过程和函数中可以直接使用自定义变量。二、包的构成• 包规范部分• 包体部分--包规范定义语法createorreplacepackage包名as|is--定义存储过程

Oracle学习笔记二十六:触发器的使用

一、触发器简介•什么是触发器(trigger)  • 触发器在数据库里以独立的对象存储,由数据库产生某一类事件而启动运行,即触发器是当某个事件发生时自动地隐式运行。•触发器的特点  •由特定事件触发,外部无法调用。  •触发器无参数。  •一个表上最多可有12个触发器。•触发器的作用  •常用来完成由数据库的完整性约束难以完成的复杂业务规则的约束,或用来监视对数据库的各种操作,实现审计的功能。二、触发器分类1)DML触发器  •Oracle可以在执行DML语句时运行触发,同时可以指定在DML操作前或操作后进行触发,指定对每个行或语句操作上进行触发。2)替代触发器  •由于在Oracle里,不能

Oracle学习笔记二十六:触发器的使用

一、触发器简介•什么是触发器(trigger)  • 触发器在数据库里以独立的对象存储,由数据库产生某一类事件而启动运行,即触发器是当某个事件发生时自动地隐式运行。•触发器的特点  •由特定事件触发,外部无法调用。  •触发器无参数。  •一个表上最多可有12个触发器。•触发器的作用  •常用来完成由数据库的完整性约束难以完成的复杂业务规则的约束,或用来监视对数据库的各种操作,实现审计的功能。二、触发器分类1)DML触发器  •Oracle可以在执行DML语句时运行触发,同时可以指定在DML操作前或操作后进行触发,指定对每个行或语句操作上进行触发。2)替代触发器  •由于在Oracle里,不能

Oracle学习笔记二十三:自定义函数

一、函数概述• PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。  • 相同点:完成特定功能的程序  • 不同点:是否用return语句返回值二、函数语法  CREATE[ORREPLACE]FUNCTION[([IN|OUT|INOUT],…)]    RETURN  IS|AS    [;]  BEGIN    ;    RETURN;    [EXCEPTION      ;      RETURN;]  END[];三、函数参数•函数的参数有3种类型:  • IN参数类型:表示输入给函数

Oracle学习笔记二十三:自定义函数

一、函数概述• PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。  • 相同点:完成特定功能的程序  • 不同点:是否用return语句返回值二、函数语法  CREATE[ORREPLACE]FUNCTION[([IN|OUT|INOUT],…)]    RETURN  IS|AS    [;]  BEGIN    ;    RETURN;    [EXCEPTION      ;      RETURN;]  END[];三、函数参数•函数的参数有3种类型:  • IN参数类型:表示输入给函数

Oracle学习笔记二十四:自定义函数之返回结果集

一、基本说明• Oracle中的函数可以返回表类型,但是这个表类型实际上是集合类型(与数组类似)。从Oracle9i开始,提供了一个叫做"管道化表函数"来解决此问题。• 管道化表函数,必须返回一个集合类型,且标明pipelined。它不能返回具体变量,必须以一个空return返回,通过piperow()语句来送出要返回的表中的每一行。调用这个函数的时候,通过table()关键字把管道流仿真为一个数据集。二、常见形式2.1、以游标形式返回结果集1)创建函数createorreplacefunctionfn_GetEmpnoByCursor(p_enameinvarchar2)returnsys_

Oracle学习笔记二十四:自定义函数之返回结果集

一、基本说明• Oracle中的函数可以返回表类型,但是这个表类型实际上是集合类型(与数组类似)。从Oracle9i开始,提供了一个叫做"管道化表函数"来解决此问题。• 管道化表函数,必须返回一个集合类型,且标明pipelined。它不能返回具体变量,必须以一个空return返回,通过piperow()语句来送出要返回的表中的每一行。调用这个函数的时候,通过table()关键字把管道流仿真为一个数据集。二、常见形式2.1、以游标形式返回结果集1)创建函数createorreplacefunctionfn_GetEmpnoByCursor(p_enameinvarchar2)returnsys_

设计模式学习笔记(二十二)解释器模式及其实现

解释器模式(InterpreterDesignPattern)指给定一个“语言”,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。这里所指的“语言”是指使用规定格式和语法的代码。比如说在计算器中,我们输入一个加法/减法表达式(中缀表达式)“1+6-5”字符串,就能在计算器中输出结果2。而我们知道,一般的程序语言像C++、Java和Python无法直接解释这个字符串,那么就必须定义规定格式和语法的解释器,来对这个字符串表达式进行解释成程序语言能计算的方式(后缀表达式),最后再进行输出。也就是中缀表达式转换成后缀表达式。那么在着这个转换中就需要满足这样的语法:首先

设计模式学习笔记(二十二)解释器模式及其实现

解释器模式(InterpreterDesignPattern)指给定一个“语言”,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。这里所指的“语言”是指使用规定格式和语法的代码。比如说在计算器中,我们输入一个加法/减法表达式(中缀表达式)“1+6-5”字符串,就能在计算器中输出结果2。而我们知道,一般的程序语言像C++、Java和Python无法直接解释这个字符串,那么就必须定义规定格式和语法的解释器,来对这个字符串表达式进行解释成程序语言能计算的方式(后缀表达式),最后再进行输出。也就是中缀表达式转换成后缀表达式。那么在着这个转换中就需要满足这样的语法:首先