学习记录:SQLPlus输出格式化原创
金蝶云社区-无涯有涯
无涯有涯
31人赞赏了该文章 676次浏览 未经作者许可,禁止转载编辑于2024年07月20日 17:50:45

以下内容由AI整理,个人留存备查,不保障无任何错误。

在Oracle的SQL*Plus工具中,COLUMN命令的FORMAT选项用于定义列的显示格式。FORMAT可以有多种参数,允许用户根据列数据的类型来定制列的显示方式。以下是一些常用的FORMAT参数及其详细说明:

  1. A<n>

    • 说明:为VARCHAR类型的列设置宽度。如果列内容超过指定的宽度,内容会自动换行。

    • 用法COLUMN column_name FORMAT A10 将指定列设置为宽度为10个字符的列。

  2. 9<n>

    • 说明:设置NUMBER类型列的显示格式。

    • 用法COLUMN column_name FORMAT 99999999 将数字格式化为不带小数点的数字,并根据需要填充空格以达到指定的宽度。

  3. $<n> 或 L<n>

    • 说明:用于货币符号的格式化。$代表浮动的货币符号,L代表本地的货币符号。

    • 用法COLUMN salary FORMAT $999,999 将薪资列格式化为带有美元符号和千位分隔符的数字。

  4. .

    • 说明:指定小数点位置。

    • 用法COLUMN salary FORMAT 999,999.99 将薪资列格式化为包含两位小数的数字,并使用千位分隔符。

  5. ,

    • 说明:千位分隔符。

    • 用法:与上述小数点结合使用,用于格式化大数字并增加可读性。

配合其他命令选项的常用用法:

  • HEADING:用于为列指定自定义标题。

    • 用法COLUMN column_name HEADING 'Custom Heading' FORMAT ...

  • NULL:用于定义NULL值的显示方式。

    • 用法COLUMN column_name NULL 'N/A' FORMAT ... 如果列中的值为NULL,将显示'N/A'。

  • JUSTIFY:用于设置列的对齐方式(LEFT, RIGHT, or CENTER)。

    • 用法COLUMN column_name JUSTIFY RIGHT FORMAT ...

综合使用示例:

COLUMN salary FORMAT $999,999.99 HEADING 'Salary (USD)' NULL 'N/A' JUSTIFY RIGHT  
COLUMN employee_name FORMAT A20 HEADING 'Employee Name' 
SELECT employee_name, salary FROM employees;

在这个示例中,salary列被格式化为带有美元符号、千位分隔符和两位小数的数字,标题为'Salary (USD)',如果值为NULL则显示为'N/A',并且右对齐。employee_name列被格式化为宽度为20个字符的字符串,标题为'Employee Name'。

请注意,这些格式化选项在SQL*Plus会话中是临时的,当会话结束时,它们将不再生效。如果需要永久地更改列的显示格式,需要在应用程序代码或报告中实现相应的格式化逻辑。


赞 31