Oracle高级对象

1、存储过程

相当于java中的方法,如果没有返回值,则称之为存储过程,有返回值,则称为函数,
 存储过程其实就是一个带名字的
 执行效率很高,因为存储过程是预编译的,即创建时编译,而SQL语句是执行一次,编译一次

调用存储过程可以大大减少同数据库的交互次数。
降低网络通信量,因为存储过程执行的时候,只需要call存储过程名,不需要传递大量的SQL语句。
有利于复用。

语法:

create or replace procedure 过程名(参数列表)
 is 
 --定义声明
 begin
 --功能区
 end;

参数可以通过 DEFAULT给默认值

异常来意不明,Oracle可以使用自定义的异常。

函数:
一是有返回值,
存储过程和函数的区别:
1、返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有
2、调用分区别,函数可以在查询语句中直接调用而存储过程必须单独调用。

函数一般情况下是用来计算并返回一个计算结果而存储过程一般是用来完成特定的数据操作
如果返回多个参数最好使用存储过程,如果只有一个返回值的话可以使用函数。

查看Oracle ID:set serveroutput on

exec dbms_output.put_line(utl_inaddr.get_host_address);

相关推荐