PL 只能缓存运行时不会变化的 SQL 语句。

    EXECUTE IMMEDIATE 语句在单个操作中构建和运行动态 SQL。最基本的语法格式为:

    OPEN FOR 语句的简单语法格式如下:

    应用程序能够为不同的查询打开游标变量,用完才关闭游标。因为 PL 只有在运行时才能决定不同查询的数量,所以 PL 不能缓存 OPEN FOR 语句。

    Bulk SQL 减少了 PL 和 SQL 之间的交互次数,从而使用了较少的资源。

    如果没有 Bulk SQL,通过 SQL 引擎从数据库每次获取一行数据,在 PL 里处理,然后返回给数据库 SQL 引擎;有了 Bulk SQL,一次可以从数据库获取一批记录,然后处理这批记录,再返回给数据库。

    下面示例通过对表 ware 循环,每次获取 100 行记录(在 Bulk FETCH 语句后加上 LIMIT 语句限制获取行数,这需要显式的游标),然后处理,再返回给数据库。