在concat,oracle期间格式化列标题

时间:2013-11-15 13:15:08

标签: sql oracle formatting

我需要在使用concat时格式化sql输出中的列标题 例如:

SELECT '' || to_char(sysdate,'ddmmyyyy') as DATE || ',' || ENO|| ',' || NAME|| ''  
FROM EMP;

会找回我

  

ORA-00923:找不到FROM关键字。

需要输出为:

DATE   ENO   NAME
-----------------
251013 7560  RAM
251013 7561  ROSS

此格式有效

SELECT to_char(sysdate,'ddmmyyyy') || ',' || ENO || ',' || NAME as "DATE,ENO,NAME" 
FROM EMP

但我的问题是

  

ORA-00972:标识符太长

当里面的列名长度为“”超过30个字符时

例如:

SELECT to_char(sysdate,'ddmmyyyy') || ',' || ENO || ',' || NAME ||
       ',' || EMPLOYEE_IDENTIFICATION_NUMBER as "DATE,ENO,NAME,EMPLOYEE_IDENTIFICATION_NUMBER" 
FROM EMP;

2 个答案:

答案 0 :(得分:2)

要实现此输出,您必须像这样构建查询 SELECT to_char(sysdate,'ddmmyyyy') || ',' || ENO || ',' || NAME as "DATE,ENO,NAME" FROM EMP

答案 1 :(得分:0)

如果确实需要,您需要在SELECT子句的末尾移动别名。此外,空字符串('')也可以删除:

SELECT to_char(sysdate,'ddmmyyyy') || ',' || ENO || ',' || NAME as DATE FROM EMP;