COBOL-DB2程序如何调用存储过程?

存储过程通常包含一个或多个程序中经常使用的SQL。STORED PROCEDURE的主要优点是,由于STORED PROCEDURES驻留在DB2中,因此它减少了COBOL与DB2之间的数据通信。

一个COBOL-DB2程序可以使用CALL语句调用一个STORED PROCEDURE,并且我们最多可以嵌套16个级别的STORED PROCEDURE。例如,如果我们具有名称为ORDERSTAT的STORED PROCEDURE,则可以使用以下命令在COBOL-DB2程序中调用它:

示例

EXEC SQL
   CALL ORDERSTAT (:WS-ORDER-ID, :WS-ORDER-STATUS)
END-EXEC

为了创建一个DB2过程,我们可以给出如下定义。

示例

CREATE PROCEDURE ORDERSTAT ( IN ORDER-ID int,
OUT ORDER-STAT char)

我们可以如下定义存储过程。

示例

LANGUAGE SQL
PROCA: BEGIN
DECLARE ORDERID int;
SELECT ORDER_STAT FROM ORDERS
   WHERE ORDER_ID = ORDERID;
END P1

以下是使用STORED PROCEDURE的一些优点。

  • 核心逻辑和算法集中存储在DB2中,并由DBMS管理。这有助于可重用性,并节省了仅在单个中央位置进行修改的工作。

  • 可以基于为DB2中不同概要文件设置的权限来限制对存储过程的访问。

  • 该逻辑在数据库服务器上执行,这减少了DB2网络上的流量,因此减少了总体执行时间。