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

标签

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

在命令式语言中,标签对于更简单的循环情况(例如 LOOP 语句),嵌套循环,或者如果您必须使用 GOTO 语句时至关重要。

使用 jOOQ,您可以使用 DSL.label() 标记任何 org.jooq.Statement

-- PL/SQL
<<label>>
BEGIN NULL; END;
// All dialects
Label label = label("label");
label.label(begin())

有很多标签。

这些标签的主要用途将在以下关于 EXITCONTINUE 的章节中讨论。

方言支持

此示例使用 jOOQ

l.label(loop())

翻译成以下特定方言的表达式

Aurora Postgres, CockroachDB, Informix, Postgres, YugabyteDB

<<l>>
LOOP
END LOOP

DB2, HSQLDB, MariaDB, MySQL, Trino

l:
LOOP
END LOOP

Firebird

l:
WHILE (1 = 1) DO BEGIN
END

H2

l:
for (;;) {
}

Oracle

<<l>>
LOOP
  NULL;
END LOOP

Snowflake

LOOP
  NULL;
END LOOP l

SQLDataWarehouse, SQLServer

l:
WHILE 1 = 1 BEGIN
  IF 1 = 0 SELECT 1;
END

ASE, Access, Aurora MySQL, BigQuery, ClickHouse, Databricks, Derby, DuckDB, Exasol, Hana, MemSQL, Redshift, SQLite, Sybase, Teradata, Vertica

/* UNSUPPORTED */
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL

反馈

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

The jOOQ Logo