IBM DB2 中 EXECUTE IMMEDIATE 和 EXECUTE WITH PREPARE 的区别是什么?


EXECUTE IMMEDIATE 和 EXECUTE PREPARE 都是动态 SQL 的形式。对于 EXECUTE immediate,我们可以在主机变量中给出 SQL 语句,并通过 EXECUTE IMMEDIATE 传递该主机变量。

以下示例演示了这些形式。

示例

01 WS-SQL-DECLARE
   05 WS-SQL-LEN   PIC S9(04) COMP.
   05 WS-SQL-QUERY   PIC X(70).

MOVE +80 TO WS-SQL-LEN
MOVE “UPDATE ORDERS SET ORDER_PAID = ‘YES’ WHERE ORDER_DATE = ‘14-08-2020’” TO WS-SQL-QUERY

EXEC SQL
   EXECUTE IMMEDIATE :WS-SQL-DECLARE
END-EXEC

对于 EXECUTE PREPARE,先准备 SQL 语句,再执行它。我们可以按如下所示使用动态 SQL 的这种形式。

示例

01 WS-SQL-DECLARE
05 WS-SQL-LEN   PIC S9(04) COMP.
05 WS-SQL-QUERY   PIC X(70).

MOVE +80 TO WS-SQL-LEN
MOVE “UPDATE ORDERS SET ORDER_PAID = ‘YES’ WHERE ORDER_DATE = ‘14-08-2020’” TO WS-SQL-QUERY

EXEC SQL
   PREPARE RUNFORM FROM :WS-SQL-DECLARE
END-EXEC

EXEC SQL
   EXECUTE RUNFORM
END-EXEC

更新于: 2020 年 11 月 30 日

671 次浏览

启动你的 职业

完成课程认证

开始
广告