竹签子毕竟是
许多RDBMS支持“例程”的概念,通常将其称为过程和/或函数。 这些概念已经存在于编程语言中一段时间了,而且不在数据库中。 区分程序和功能的著名语言是:
- 艾达
- 基本知识
- 帕斯卡
- 等等…
(存储的)过程和(存储的)函数之间的一般区别可以总结如下:
程序:
- 使用JDBC CallableStatement调用
- 没有返回值
- 通常支持OUT参数
功能:
- 可以在SQL语句中使用
- 有回报价值
- 通常不支持OUT参数
但是这些规则也有例外:
- 调用函数时,DB2,H2和HSQLDB不允许使用JDBC转义语法。 必须在SELECT语句中使用函数
- H2只知道功能(没有OUT参数)
- Oracle函数可能具有OUT参数
- Oracle知道出于事务原因不能在SQL语句中使用的函数
- Postgres只知道功能(所有功能组合在一起)。 OUT参数也可以解释为返回值,根据您的喜好,它非常优雅/古怪
- 在函数上使用JDBC转义语法时,Sybase jconn3 JDBC驱动程序无法正确处理空值
通常,可以说,例程(过程/函数)的领域远非现代RDBMS中的标准化。 每个数据库都有其自己的方式,而JDBC仅对各种各样的过程/函数实现提供很少的抽象,尤其是在涉及高级数据类型(例如游标/ UDT /数组)时。
参考: 毕竟是什么程序和功能? 从我们的JCG合作伙伴 Lukas Eder的“ Java,SQL和jOOQ”博客中获得 。
相关文章 :
- Java中的数据库架构导航
- 将APPLY添加到TSQL工具带
- Java Persistence API:快速入门
- Hibernate映射集合性能问题
- ORM问题
- Java教程和Android教程列表
翻译自: https://www.javacodegeeks.com/2011/10/what-are-procedures-and-functions-after.html
竹签子毕竟是