|
Oracle12c命令行访问时,数据以格式化输出的必要设置
SET PAGESIZE 0;
# 将每页的行数设置为 0
# 当 PAGESIZE = 0 时,SQL*Plus 会完全禁用分页,不在输出中插入任何标题行、分隔线或空行。这通常用于生成纯文本数据(如导出 CSV),保证输出只有数据行,没有页眉、列标题或页之间的空白。

SET LINESIZE 300;
# 设置每行的最大字符宽度为 300 控制输出的行宽。
# 当字段内容超过该宽度时,SQL*Plus 会自动换行(但如果 TRIMSPOOL ON,换行后行尾空格会被裁掉)。对于导出 CSV 等场景,设置一个足够大的 LINESIZE(如 300)可以避免单行被意外截断或换行,保证每条记录完整占一行。

SET HEADING OFF;
# 关闭列标题显示
# 执行查询时,不再输出每个列的标题行(即 COLUMN 的 HEADING 或默认字段名)。配合 PAGESIZE 0 使用,输出内容只有数据,更加纯净。

SET FEEDBACK OFF;
# 关闭反馈信息
# 不再显示 “xx rows selected” 之类的提示信息。避免这些额外文本混入数据输出中,尤其在重定向或 SPOOL 时很重要。

SET RECSEP OFF;
# 关闭记录分隔符
# 默认情况下,RECSEP 控制是否在每条记录后打印分隔线(如一排 - 或 =)。OFF 表示完全不打印任何记录间隔符号,保证输出连续的行。

SET TRIMSPOOL ON;
# 去除 SPOOL 输出行尾的空白字符
# 当使用 SPOOL 将输出写入文件时,TRIMSPOOL ON 会去掉每行末尾的空格,避免文件体积膨胀,也方便后续解析。

SET NULL null;
# 将 NULL 值显示为指定的字符串(这里是 'null')
# 在查询结果中,如果某个字段的值为 NULL,默认显示为空白。此命令将其替换为字符串 'null',让你能明确区分 NULL 和空字符串。不过请注意,如果你在 SELECT 中使用了 NVL 或 COALESCE,则 SET NULL 不会覆盖那些显式转换。
|