我正在使用Oracle SQL(在SQLDeveloper中,因此我无法访问诸如COLUMN之类的SQLPLUS命令)来执行如下所示的查询:
select assigner_staff_id as staff_id,active_flag,assign_date,complete_date,mod_date from work where assigner_staff_id = '2096';
它给我的结果看起来像这样:
STAFF_ID ACTIVE_FLAG ASSIGN_DATE COMPLETE_DATE MOD_DATE ---------------------- ----------- ------------------------- ------------------------- ------------------------- 2096 F 25-SEP-08 27-SEP-08 27-SEP-08 02.27.30.642959000 PM 2096 F 25-SEP-08 25-SEP-08 25-SEP-08 01.41.02.517321000 AM 2 rows selected
当我尝试将结果粘贴为电子邮件或问题报告等格式良好的快速脏文本块时,这很容易产生非常宽泛且难以处理的文本报告.什么是最好的摆脱方法当我使用普通的Oracle SQL时,输出列中的所有额外空白区域?到目前为止,我的所有网络搜索都没有出现太多,因为所有的网络搜索结果都向我展示了如何使用SQLPLUS中的COLUMN之类的格式化命令(我没有).
解决方法
你用什么来获得结果?您粘贴的输出看起来像来自SQL * PLUS.可能是您用于生成结果的任何工具都有一些修改输出的方法.
默认情况下,Oracle根据标题的宽度或更宽的列数据的宽度输出列.
如果您希望使列更小,则需要重命名它们或将它们转换为文本并使用substr()使默认值更小.
select substr(assigner_staff_id,8) as staff_id,active_flag as Flag,to_char(assign_date,'DD/MM/YY'),to_char(complete_date,mod_date from work where assigner_staff_id = '2096';