2022年Oracle数据库数据对象分析(下)ORACLE教程.docx
《2022年Oracle数据库数据对象分析(下)ORACLE教程.docx》由会员分享,可在线阅读,更多相关《2022年Oracle数据库数据对象分析(下)ORACLE教程.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2022年Oracle数据库数据对象分析(下)ORACLE教程过程和函数过程和函数都以编译后的形式存放在数据库中,函数可以没有参数也可以有多个参数并有一个返回值。过程有零个或多个参数,没有返回值。函数和过程都可以通过参数列表接收或返回零个或多个值,函数和过程的主要区分不在于返回值,而在于他们的调用方式。过程是作为一个独立执行语句调用的:pay_involume(invoice_nbr,30,due_date);函数以合法的表达式的方式调用:order_volumn:=open_orders(SYSDATE,30);创建过程的语法如下:CREATE OR REPLACE PROCEDURE sc
2、hema.procedure_nameparameter_lister{AS|IS}declaration_sectionBEGINexecutable_sectionEXCEPTIONexception_sectionEND procedure_name每个参数的语法如下:paramter_name mode datatype (:=|DEFAULT) valuemode有三种形式:IN、OUT、INOUT。IN表示在调用过程的时候,实际参数的取值被传递给该过程,形式参数被认为是只读的,当过程结束时,限制会返回限制环境,实际参数的值不会变更。OUT在调用过程时实际参数的取
3、值都将被忽视,在过程内部形式参数只能是被赋值,而不能从中读取数据,在过程结束后形式参数的内容将被给予实际参数。INOUT这种模式是IN和OUT的组合;在过程内部实际参数的值会传递给形式参数,形势参数的值可读也可写,过程结束后,形势参数的值将给予实际参数。创建函数的语法和过程的语法基本相同,唯一的区分在于函数有RETUREN子句CREATE OR REPLACE FINCTION schema.function_nameparameter_listRETURN returning_datatype{AS|IS}declaration_sectionBEGINexecutabl
4、e_sectionEXCEPTIONexception_sectionEND procedure_name在执行部分函数必需有哟个或多个return语句。在创建函数中可以调用单行函数和组函数,例如:CREATE OR REPLACE FUNCTION my_sin(DegreesIn IN NUMBER)RETURN NUMBERISpi NUMBER=ACOS(-1);RadiansPerDegree NUMBER;BEGINRadiansPerDegree=pi/180;RETURN(SIN(DegreesIn*RadiansPerDegree);END12下一页 包包是一种将过程、函数和
5、数据结构捆绑在一起的容器;包由两个部分组成:外部可视包规范,包括函数头,过程头,和外部可视数据结构;另一部分是包主体(package body),包主体包含了全部被捆绑的过程和函数的声明、执行、异样处理部分。打包的PL/SQL程序和没有打包的有很大的差异,包数据在用户的整个会话期间都始终存在,当用户获得包的执行授权时,就等于获得包规范中的全部程序和数据结构的权限。但不能只对包中的某一个函数或过程进行授权。包可以重载过程和函数,在包内可以用同一个名字声明多个程序,在运行时依据参数的数目和数据类型调用正确的程序。创建包必需首先创建包规范,创建包规范的语法如下:CREATE OR REPLACE P
6、ACKAGE package_name{AS|IS}public_variable_declarations |public_type_declarations |public_exception_declarations |public_cursor_declarations |function_declarations |procedure_specificationsEND package_name创建包主体运用CREATE PACKAGE BODY语句:CREATE OR REPLACE PACKAGE BODY package_name{AS|IS
7、25;private_variable_declarations |private_type_declarations |private_exception_declarations |private_cursor_declarations |function_declarations |procedure_specificationsEND package_name私有数据结构是那些在包主体内部,对被调用程序而言是不行见的。触发器(Triggers)触发器是一种自动执行响应数据库改变的程序。可以设置为在触发器事务之前或之后触发或执行。能够触发触发器事务的事务包括下面几种:DML事务DDL事务
8、数据库事务DML事务触发器可以是语句或行级触发器。DML语句触发器在触发语句之前或之后触发DML行级触发器在语句影响的行改变之前或之后触发。用户可以给单一事务和类型定义多个触发器,但没有任何方法可以增加多触发器触发的吩咐。下表列出了用户可以利用的触发器事务:事务触发器描述INSERT 当向表或视图插入一行时触发触发器UPDATE 更新表或视图中的某一行时触发触发器DELETE从表或视图中删除某一行时触发触发器CREATE当运用CREATE语句为数据库或项目增加一个对象时触发触发器ALTER当运用ALTER语句为更改一个数据库或项目的对象时触发触发器DROP当运用DROP语句删除一个数据库或项目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 Oracle 数据库 数据 对象 分析 教程
限制150内