zoukankan      html  css  js  c++  java
  • 存储过程 <3> 和函数的区别

    二、函数和存储过程的优点:

      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内部调用函数来完成复杂的计算问题,但不能调用存储过程。

  • 相关阅读:
    也谈用反射实现Enum→String映射:一种重视性能的方法【转载】
    C#对象的浅拷贝,深拷贝【转载】
    int转byte[],byte[]转int
    TF31003:您的用户帐户没有连接到 Team Foundation Server 的权限
    关于枚举的双语显示问题
    浅析C#深拷贝与浅拷贝
    反射枚举变量
    C#路径/文件/目录/I/O常见操作汇总(二)
    【转】正确理解ThreadLocal
    【转】JSP的九个隐含对象
  • 原文地址:https://www.cnblogs.com/futao123/p/4466137.html
Copyright © 2011-2022 走看看