关于java:函数和存储过程

一、函数

  函数与存储过程类似,也是数据库中存储的已命名PL-SQL程序块。函数的次要特色是它必须有一个返回值。通过return来指定函数的返回类型。在函数的任何中央能够通过return expression语句从函数返回,返回类型必须和申明的返回类型统一。

二、函数和存储过程的长处:

  1、独特应用的代码能够只须要被编写一次,而被须要该代码的任何应用程序调用(.net,c++,java,也能够使DLL库)。

  2、这种几种编写、几种保护更新、大家共享的办法,简化了应用程序的开发保护,进步了效率和性能。

  3、这种模块化的办法使得一个简单的问题、大的程序逐渐简化成几个简略的、小的程序局部,进行别离编写,因而程序的构造更加清晰,简略,也容易实现。

  4、能够在各个开发者之间提供解决数据、管制流程、提示信息等方面的一致性。

  5、节俭内存空间。它们以一种压缩的模式被存储在外存中,当被调用时才被放入内存进行解决。而且多个用户在调用同一个存储过程或函数时,只须要加载一次即可。

  6、进步数据的安全性和完整性。通过把一些对数据的操作方到存储过程或函数中,就能够通过是否授予用户有执行该语句的权限,来限度某些用户对数据库进行这些操作。

三、函数和存储过程的区别:

  1、存储过程用户在数据库中实现特定操作或者工作(如插入,删除等),函数用于返回特定的数据

  2、存储过程申明用procedure,函数用function。

  3、存储过程不须要返回类型,函数必须要返回类型

  4、存储过程可作为独立的pl-sql执行,函数不能作为独立的plsql执行,必须作为表达式的一部分。

  5、存储过程只能通过out和in/out来返回值,函数除了能够应用out,in/out以外,还能够应用return返回值。

  6、sql语句(DML或SELECT)中不可用调用存储过程,而函数能够。

四、实用场合:

  1、如果须要返回多个值和不返回值,就应用存储过程;如果只须要返回一个值,就应用函数

  2、存储过程个别用于执行一个指定的动作函数个别用于计算和返回一个值。

  3、能够再SQL外部调用函数来实现简单的计算问题,但不能调用存储过程。

五、存储过程与存储函数的区别和分割

  相同点:1.创立语法结构类似,都能够携带多个传入参数和传出参数。

          2.都是一次编译,屡次执行。

  不同点:1.存储过程定义关键字用procedure,函数定义用function

      2.存储过程中不能用return返回值,但函数中能够,而且函数中必须有return子句

      3.执行形式略有不同,存储过程的执行形式有两种(1.应用execute2.应用begin和end),函数除了存储过程的两种形式外,还能够当做表达式应用,例如放在select中(select f1() form dual;)。

总结:如果只有一个返回值,用存储函数,否则,个别用存储过程。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理