SQL Developer自定义格式化需求:分号换行与JOIN缩进
SQL Developer自定义格式化实现分号单独换行与JOIN缩进
核心需求
- 分号单独占一行
- JOIN语句换行后缩进,ON子句进一步缩进
自定义格式化设置步骤
1. 配置分号单独换行
- 打开SQL Developer,依次点击 工具 → 首选项 → 数据库 → SQL格式化 → 高级格式
- 在高级格式配置窗口中,找到语句终止符相关设置:
- 勾选在终止符前添加换行
- 确认终止符后添加换行保持勾选状态
- 保存配置后测试格式化,分号会自动单独换行。
2. 配置JOIN与ON子句的缩进
- 同样在高级格式窗口中,定位到JOIN子句设置区域:
- 设置JOIN关键字的缩进值(比如4个空格,匹配示例中的缩进量)
- 设置ON关键字的缩进值为更大的数值(比如8个空格,实现ON子句的进一步缩进)
- 勾选JOIN关键字换行,确保每个JOIN单独占一行
- 保存配置后重新格式化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
相关产品推荐
相关产品推荐

