设置列格式的相关命令
1. 改变列的显示长度
COLUMN column_name FOR[MAT] format
备注:
注意该命令将保持一直生效直至输入了一个新的格式值或者退出了SQL*PLUS, 其中字段类型可以为Char, Varchar2, varchar。
如果SQL*PLUS的WARP变量的值被设置为"开"(默认值), 那么字段的内容将会在format命令规定的长度处折行, 否则的话超过规定长度的后续字符将会被截取。
如果你有多个相同显示属性的列需要设置,那么使用column 字段名 like 你想要复制显示属性的字段heading 字段名。注意如果不加上后面heading 字段名那么复制的时候连字段名都会复制过去,显然不适合一般要求。
2. 格式化NUMBER类型列的显示
SQL> COLUMN SAL FORMAT $99,990
3. 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
4. 设置一个列的回绕方式
COLUMN WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
备注:此命令常和format合用,当列值过长时可以使用该命令格式话输出, wrapped根据字符长度控制, word_wrapped根据单词控制, truncated则直接截取等长字符。
5. 清空当前所有列的设置,恢复成默认格式
CLEAR COLUMNS
下面我们来看一下这些命令的综合应用:
Name Null? Type
-- --------------------------------------- -------- ----------------------------
ID NUMBER
NAME VARCHAR2( 20)
REMARK VARCHAR2( 50)
SALARY NUMBER
SQL > select * from testtable;
ID NAME
-- -------- ----------------------------------------
REMARK
-- ------------------------------------------------------------------------------
SALARY
-- --------
1 paul
99999
现在我们要对这个输出进行修改,包括:
①分别设置输出列的长度为2、10、6、8
②分别设置输出列的列名居中
③格式化Salary列的值为$999,999
④将Remark列的空值替换为字符串User description
⑤设置Remark列的回绕方式为按单词回绕
下面我们来看看这个SQL*PLUS命令应该如何写:
SQL > column Name justify center format a10
SQL > column Remark justify center format a6 NULL ' User description ' word_wrapped
SQL > column salary justify right format $ 999, 999
SQL > select * from testtable;
ID NAME REMARK SALARY
-- -------- ---------- ------ ---------
1 paul User $ 99, 999
descri
ption
看看其中的SQL语句:
该句设置了:列名居中显示、列的长度为6个字符、空值用'User description'代替、按单词回绕(所以是在User处折行,而不是在User d出折行,虽然列的长度可以为6)
设置页面及行格式的相关命令
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
3.设置页与页之间的分隔
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
下面我们来实地查看一下上述命令在结果输出中的应用
ID NAME REMARK
-- -------- ---------- --------------------------------------------------
REG_DATE SALARY
-- -------- ----------
1 paul lin
07 -6月 - 08 5500
2 bob lin common user
06 -6月 - 08 6500
SQL >
下面我们要做的就是:
①调整页面最大显示长度为200
②设置每页只显示一条记录
③每页之间间隔两个空
SQL >
SQL > /
1 paul lin 07 -6月 - 08 5500
2 bob lin common user 06 -6月 - 08 6500
SQL >
可以看到页面的输出并不让人满意(标题和虚线都没有了),现在我们使用一种令人比较满意的设置:
SQL >
SQL >
SQL > /
ID NAME REMARK REG_DATE SALARY
-- -------- ---------- -------------------------------------------------- ---------- ----------
1 paul lin 07 -6月 - 08 5500
2 bob lin common user 06 -6月 - 08 6500
SQL >
实际上该命令的最后设置newpage会在每页的前面加上一个黑色的小方框(在这里不能显示),以提示这是新一页的开始,假如你不想进行任何的提示那么只要设置newpage为none就可以了(你所看到的输出和现在的一模一样)。
至于linesize的设置则要考虑屏幕和打印机的大小了。