我在命令提示符中运行了简单的select查询,但输出行不在一行中.见下文:
sql> set pagesize 2000 sql> select * from xtern_empl_rpt ; EMP LAST_NAME --- -------------------------------------------------- FIRST_NAME SSN -------------------------------------------------- --------- EMAIL_ADDR -------------------------------------------------------------------------------- YEARS_OF_SERVICE ---------------- 001 Hutt Jabba 896743856 jabba@thecompany.com 18 002 Simpson Homer 382947382 homer@thecompany.com 20 003 Kent Clark 082736194 superman@thecompany.com 5 004 Kid Billy 928743627 billythkid@thecompany.com 9 005 Stranger Perfect 389209831 nobody@thecompany.com 23 006 Zoidberg Dr 094510283 crustacean@thecompany.com 1 6 rows selected. sql>
你能帮我把每一行写成一行吗?
编辑
我试过下面,但仍然没有美化.
sql> SET LINESIZE 4000 sql> select * from xtern_empl_rpt ; EMP LAST_NAME FIRST_NAME SSN EMAIL_ADDR YEARS_OF_SERVICE --- -------------------------------------------------- ------------------------- ------------------------- --------- -------------------------------------------- -------------------------------------------------------- ---------------- 001 Hutt Jabba 896743856 jabba@thecompany.com 18 002 Simpson Homer 382947382 homer@thecompany.com 20 003 Kent Clark 082736194 superman@thecompany.com 5 004 Kid Billy 928743627 billythkid@thecompany.com 9 005 Stranger Perfect 389209831 nobody@thecompany.com 23 006 Zoidberg Dr 094510283 crustacean@thecompany.com 1 6 rows selected. sql>
设置列宽以适合屏幕
例如:
column EMAIL_ADDR format a30
其中a是列宽.您可以使用WRA来包装列
例如
column EMAIL_ADDR format a30 WRA
或TRU截断,WOR打破字边界
例如:
sql> select * from emp; ID FIRST_NAME ---------- ------------------------------ LAST_NAME ------------------------------ EMAIL_ADDR -------------------------------------------------- 1 Dazza Smith d_dazzal@dazzal.com
所以输出有点棘手,因为email_addr被填充到300个字符(因为我的表定义为varchar2(300),sql * plus用来格式化输出).
首先设置一个合适的lineize:
sql> set linesize 100
现在让我们设置列,使它们适合一行(linesize应该大于总col宽度):
sql> column email_addr format a30 sql> column last_name format a20 sql> column first_name format a20 sql> select * from emp; ID FIRST_NAME LAST_NAME EMAIL_ADDR ---------- -------------------- -------------------- ------------------------------ 1 Dazza Smith d_dazzal@dazzal.com
所以现在这些列很容易适合合理大小的终端.
在你的情况下,first_name和last_name是varchar2(50)但它们中的数据要小得多,所以我从列first_name格式a15开始(对于last_name也是如此).使用电子邮件,您的列是varchar2(100),但最大大小的输出是25个字符,因此将列电子邮件格式设置为a25作为启动器.
如果你这样做,你应该得到输出(如果lineize足够高),如:
sql> select * from xtern_empl_rpt ; EMP LAST_NAME FIRST_NAME SSN EMAIL_ADDR YEARS_OF_SERVICE --- --------------- -------------- --------- ------------------------- ---------------- 001 Hutt Jabba 896743856 jabba@thecompany.com 18
最后按要求. WRA TRU和WOR.顺便说一句,WRA是默认的,所以你不必使用它但是我们说:
sql> select * from test; A -------------------------------------- THIS IS A SIMPLE WRAPPING TEST
但我想将其格式化为10个字符宽度:
小号
QL> col a format a10 WRA sql> select * from test; A ---------- THIS IS A SIMPLE WRA PPING TEST
WRA意味着只需将字符串切成10个字符,无论我们是否在一个单词的中间.如果我们想要在单词结尾处打破(在可能的情况下,单词> 10仍然需要打破):
sql> col a format a10 WOR sql> select * from test; A ---------- THIS IS A SIMPLE WRAPPING TEST
现在输出在字边界处被打破,而不一定在10个字符处.
如果我们只想要前10个字符并且没有换行,我们可以使用TRU:
sql> col a format a10 TRU sql> select * from test; A ---------- THIS IS A