PL/SQL和Java开发Oracle8i应用程序
2007-05-06 12:07:09 来源:WEB开发网核心提示: Oracle8i中存储过程的类型Oracle8i支持的存储过程类型有几种?Oracle8i 支持四种不同类型的存储过程用PL/SQL或Java,都可以实现全部四种类型的存储过程,PL/SQL和Java开发Oracle8i应用程序(2),这四种存储过程类型是:存储过程顶级存储过程允许客户用任
Oracle8i中存储过程的类型
Oracle8i支持的存储过程类型有几种?Oracle8i 支持四种不同类型的存储过程用PL/SQL或Java,都可以实现全部四种类型的存储过程。这四种存储过程类型是:
存储过程顶级存储过程允许客户用任意商业逻辑扩展SQL。客户用名称调用存储过程,可以在SQL、PL/SQL包、以及“顶级”位置上调用存储过程。
存储函数存储函数实质上与存储过程相同,不同之处在于存储函数向调用者返回值。可以用名称调用存储函数,也可以在SQL、PL/SQL包、以及“顶级”位置上调用存储函数。
数据库触发器:触发器是与特定的表和视图关联的商业规则,修改对表或视图时,SQL自动调用触发器。Oracle8i 提供了几种类型的触发器:在SQLDML语句执行之前或之后激发的触发器;在每一行更新之前或之后激发的触发器;事件触发器(例如:登录、退出、DDL语句、数据库启动或关闭等的触发器);替代(instead-of)触发器。所有这些触发器类型,都可以用PL/SQL或Java编写。
对象类型方法 Oracle8 ™ 发行版8.0和Oracle8i提供了用SQL定义复合数据类型的能力。这些对象类型的方法,可以用Java实现,也可用PL/SQL实现。例如,可以用SQL定义一个订单对象类型purchase_order_t,如下所示:
CREATE TYPE purchase_order_t AS OBJECT (
pono NUMBER,
custref REF customer_info_t,
orderdate DATE,
shipdate DATE,
line_item_list line_item_list_t,
shiptoaddr address_t,
MEMBER FUNCTION
total_value RETURN NUMBER,
) ;
然后实现这个对象类型的方法:
CREATE OR REPLACE TYPE BODY purchase_order_t AS
MEMBER FUNCTION total_value RETURN NUMBER IS
i INTEGER;
stock stock_info_t;
line_item line_item_t;
total NUMBER := 0;
cost NUMBER;
BEGIN
// 在这里插入具体的PL/SQL代码或者译Java存储过程的调用。
END;
在Oracle 8i 里,这四种存储程序类型的每一种,都可以从不同的调用环境调用,这些调用环境是:
[]
更多精彩
赞助商链接