You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Developer自定义格式化需求:分号换行与JOIN缩进

SQL Developer自定义格式化实现分号单独换行与JOIN缩进

核心需求

  • 分号单独占一行
  • JOIN语句换行后缩进,ON子句进一步缩进

自定义格式化设置步骤

1. 配置分号单独换行

  1. 打开SQL Developer,依次点击 工具 → 首选项 → 数据库 → SQL格式化 → 高级格式
  2. 在高级格式配置窗口中,找到语句终止符相关设置:
    • 勾选在终止符前添加换行
    • 确认终止符后添加换行保持勾选状态
  3. 保存配置后测试格式化,分号会自动单独换行。

2. 配置JOIN与ON子句的缩进

  1. 同样在高级格式窗口中,定位到JOIN子句设置区域:
    • 设置JOIN关键字的缩进值(比如4个空格,匹配示例中的缩进量)
    • 设置ON关键字的缩进值为更大的数值(比如8个空格,实现ON子句的进一步缩进)
    • 勾选JOIN关键字换行,确保每个JOIN单独占一行
  2. 保存配置后重新格式化SQL,即可实现JOIN缩进、ON子句更深缩进的效果。

预期与实际格式对比

预期格式

SELECT UU.USER_NAME
     , UU.USER_TITLE
     , UU.USER_FIRST_NAME
     , UU.USER_LAST_NAME
     , UU.USER_EMAIL_1
     , UU.IS_ACTIVE
     , XWS.XWORKSPACE_ID
     , XT.TILE_CLASS
     , XT.TITLE
     , XT.XTILE_ID
     , DBP.DSHBRD_PORTLET_ID
     , DBP.PORTLET_NAME
     , DBT.DSHBRD_PORTLET_TYPE
FROM UCL_USER            UU
    LEFT JOIN XWORKSPACE          XWS
        ON UU.UCL_USER_ID = XWS.UCL_USER_ID
    LEFT JOIN XTILE               XT
        ON XWS.XWORKSPACE_ID = XT.XWORKSPACE_ID
    LEFT JOIN DSHBRD_PORTLET      DBP
        ON JSON_VALUE(XT.CONTENT, '$.portlet') = DBP.DSHBRD_PORTLET_ID
    LEFT JOIN DSHBRD_PORTLET_TYPE DBT
        ON DBP.DSHBRD_PORTLET_TYPE_ID = DBT.DSHBRD_PORTLET_TYPE_ID
WHERE UU.COMPANY_ID = 2
      AND PORTLET_NAME LIKE '%MP %'
      AND IS_ACTIVE = '1'
ORDER BY UU.USER_NAME
       , XWS.XWORKSPACE_ID
       , XT.TITLE
       , DBP.PORTLET_NAME
;

实际格式(未配置前)

SELECT UU.USER_NAME
     , UU.USER_TITLE
     , UU.USER_FIRST_NAME
     , UU.USER_LAST_NAME
     , UU.USER_EMAIL_1
     , UU.IS_ACTIVE
     , XWS.XWORKSPACE_ID
     , XT.TILE_CLASS
     , XT.TITLE
     , XT.XTILE_ID
     , DBP.DSHBRD_PORTLET_ID
     , DBP.PORTLET_NAME
     , DBT.DSHBRD_PORTLET_TYPE
FROM UCL_USER            UU
LEFT JOIN XWORKSPACE          XWS
ON UU.UCL_USER_ID = XWS.UCL_USER_ID
LEFT JOIN XTILE               XT
ON XWS.XWORKSPACE_ID = XT.XWORKSPACE_ID
LEFT JOIN DSHBRD_PORTLET      DBP
ON JSON_VALUE(XT.CONTENT
           , '$.portlet') = DBP.DSHBRD_PORTLET_ID
LEFT JOIN DSHBRD_PORTLET_TYPE DBT
ON DBP.DSHBRD_PORTLET_TYPE_ID = DBT.DSHBRD_PORTLET_TYPE_ID
WHERE UU.COMPANY_ID = 2
      AND PORTLET_NAME LIKE '%MP %'
      AND IS_ACTIVE = '1'
ORDER BY UU.USER_NAME
       , XWS.XWORKSPACE_ID
       , XT.TITLE
       , DBP.PORTLET_NAME;

内容的提问来源于stack exchange,提问作者MarkP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 22:39:58