别名中的列名称正在缩短

时间:2016-08-15 15:22:13

标签: sql oracle oracle11g

我使用以下查询创建表

CREATE TABLE FINAL_TBL AS  SELECT /*+ leading(e) use_hash(t) full(t) parallel(t,2) */
 t.customer_id
 , max(decode(type,'C',t.num,null)) AS CONTACT_TELNO
 , max(decode(type,'H',t.num,null)) AS  HOME_TELNO
 , max(decode(type,'W',t.num,null)) AS  WORK_TELNO
 , max(decode(type,'O',t.num,null))  AS OTHER_TELNO
 from TABLE_A  e, TMP_NUMBERS   t
 where t.num = e.num
 and e.status = 'P'
 group by t.customer_id
 order by 1;

但该表是使用截断的列名创建的,如下所示 CUSTOMER_ID CONTACT_TE HOME_TELNO WORK_TELNO OTHER_TELN

为什么这样?我该如何解决?

1 个答案:

答案 0 :(得分:5)

听起来你必须在SQL * Plus中运行它...你需要使用带有COLUMN选项的命令FORMAT,如下所示:column CONTACT_TELEPHONE format a18(注意没有分号因为这不是SQL命令,所以它只适用于您的界面)。 SQL查询按预期运行,但SQL * Plus会根据自己的设置格式化结果。