可用版本: Dev (3.21) | 最新 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12

过程语句

适用于 ❌ 开源版   ✅ Express 版   ✅ 专业版   ✅ 企业版

大多数关系型数据库管理系统(RDBMS)都支持某种过程语言,允许在数据库内部运行命令式代码。这些语言的语法通常相似,因此 jOOQ 也支持并标准化了它们。

在某些数据库中,过程语言可以以匿名块的形式存在,即即时解释(或编译)的临时程序。然而,在大多数 RDBMS 中,使用过程语言的主要方法是将过程逻辑存储在存储过程或函数中,以便它们可以被预编译并转换为本地代码以提高性能。

jOOQ API 目前仅支持匿名块。在不支持匿名块的某些方言中,会通过存储、调用和删除过程的方式进行模拟。

一个将值 1-10 插入表的匿名块示例

-- PL/SQL syntax
BEGIN
  FOR i IN 1 .. 10 LOOP
    INSERT INTO t (col) VALUES (i);
  END LOOP;
END;
Variable<Integer> i = var(name("i"), INTEGER);
create.begin(
  for_(i).in(1, 10).loop(
    insertInto(T).columns(T.COL).values(i)
  )
).execute();

整个循环在服务器上执行,这可以大大减少客户端-服务器之间的往返次数。

除了 块语句 外,此功能集仅在我们商业发行版中提供。

反馈

您对此页面有任何反馈吗? 我们很想听听您的意见!

The jOOQ Logo