跳转到正文

PL/SQL 格式化工具

使用 Oracle 规则格式化 Oracle SQL 和 PL/SQL,支持 q'[...]' 替代引号、N'' 字符串、双引号标识符、:bind 变量,以及在 SQL*Plus 中运行代码块的斜杠。CONNECT BY、START WITH、RETURNING 和 MINUS 会保留为子句,带有 IF 和 LOOP 的 BEGIN 和 END 代码块会进行缩进。对于 Oracle 开发人员,未闭合的字符串和括号会报告所在行和列。

重置

常见问题

支持哪些 Oracle 语法?

可识别带双引号转义的单引号字符串、q'[it's]' 或 q'{...}' 这样的替代引号,以及 N'' 国家字符集字符串。双引号标识符、带 # 和 $ 的名称(如 emp#)、:bind 变量和 := 赋值都会保持原样。

它能格式化 PL/SQL 代码块吗?

可以。BEGIN 和 END 代码段、IF THEN ELSE END IF、CASE 和 LOOP 结构都会缩进,每条语句各占一行。BEGIN 之前的声明会保留为独立语句。

斜杠行会如何处理?

仅包含 / 的行用于在 SQL*Plus 和 SQLcl 中运行上一个代码块,它会保留在单独一行,并分隔前后两个代码块。

哪些 Oracle 子句会单独成行?

层次查询中的 CONNECT BY 和 START WITH 会保留为子句。RETURNING 和 MINUS 集合运算符的处理方式与 SELECT、FROM、WHERE、GROUP BY 和 ORDER BY 等标准子句相同。

支持 MERGE 吗?

可以。WHEN MATCHED THEN 和 WHEN NOT MATCHED THEN 分支都会另起一行,让 Oracle MERGE 语句保持清晰易读。

注释会保留吗?

可以。-- 行注释和 /* 块注释 */ 会保留在原处。/*+ INDEX(e) */ 等优化器提示会完全按原样保留。

它会更改关键字的大小写吗?

不会。关键字和标识符会保留你输入时的大小写。不带引号的 Oracle 名称不区分大小写,带引号的名称则区分大小写;两者都会保持原样。

会检测哪些错误?

会报告未闭合的字符串、替代引号、带引号的标识符、块注释以及不匹配的括号,并指出所在行和列。不会编译程序包或检查语法。

输入内容可以有多大?

每次请求最多 1 MB,每条语句或每个代码块最多 128 KB。较大的程序包可以分段格式化。

可以选择缩进方式吗?代码会保存吗?

使用 2 个或 4 个空格,也可以使用制表符。代码只会在内存中格式化,绝不会保存。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。