Oracle PL/SQL 中过程/函数和对象的区别

Posted

技术标签:

【中文标题】Oracle PL/SQL 中过程/函数和对象的区别【英文标题】:Difference between procedures/functions and objects in Oracle PL/SQL 【发布时间】:2013-05-04 19:18:00 【问题描述】:

我刚刚偶然发现 PL/SQL 中的对象概念,因此开始思考 Oracle PL/SQL 过程/函数和对象之间的区别。我需要知道它们的功能差异。

PS:我熟悉Java。

【问题讨论】:

The introduction doc 非常彻底。您究竟需要澄清什么? 【参考方案1】:

FUNCTION 允许使用RETURN 语句返回值。

PROCEDURE 没有这样的返回值。但是,可以通过将参数声明为 OUT 而不是默认的 IN 来返回值。还有一个IN OUT

Oracle 中的

OBJECT 是其他概念,与 PROCEDURE AND FUNCTION 无关,更像是 Java 中的类定义。虽然这个比较有点弱。有一些关于 Oracle 对象的有用文档,例如此链接http://docs.oracle.com/cd/B28359_01/appdev.111/b28425/obj_types.htm

PACKAGE 虽然您没有要求,但应该提及。 Oracle 包包含一组函数和过程(以及更多)。包由声明和包体组成。包声明中定义的内容可以从外部访问,其余的都是私有的。

【讨论】:

请注意,包可以具有在包规范中定义的函数、过程、变量、记录、类型和子类型、异常(可能还有其他我没有想到的东西),这使得它们对包的用户。

以上是关于Oracle PL/SQL 中过程/函数和对象的区别的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库技术之PL/SQL语法和存储过程

oracle SQL语句中怎么样调用存储过程

过程中的 Pl/Sql Oracle 函数

过程或函数 (Pl/sql)

Oracle --- 存储过程函数包游标触发器

Oracle --- 存储过程函数包游标触发器