2013-11-15 54 views
3

我需要在SQL的輸出格式列標題,同時使用CONCAT 如:格式列標題,甲骨文

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; 
+0

甲骨文標識符的最大長度爲30個字符,所以你列的別名不能超過30個字符,這就是爲什麼你得到這個錯誤。 –

+0

它不是一個超過30個字符的列名稱 – user2996364

+0

因此,嘗試查找是否有避免ORA-00972的方法,同時具有使用concat的別名中的多個列名稱 – user2996364

回答

0

你需要移動的別名,如果你真的需要它,在SELECT條款結束。另外,空字符串('')可以去除:

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

爲了實現這一目標輸出,你必須建立自己的這樣的查詢 SELECT to_char(sysdate,'ddmmyyyy') || ',' || ENO || ',' || NAME as "DATE,ENO,NAME" FROM EMP

+0

此格式的工作原理 SELECT to_char(sysdate,'ddmmyyyy')|| ','|| ENO || ','||名爲 「DATE,ENO,NAME」 FROM EMP 但是我有ORA-00972的一個問題:標識符過長時內部爲 「」 列名稱的長度超過30個字符 例如: SELECT TO_CHAR(SYSDATE ,'ddmmyyyy')|| ','|| ENO || ','||姓名|| ','|| EMPLOYEE_IDENTIFICATION_NUMBER作爲「DATE,ENO,NAME,EMPLOYEE_IDENTIFICATION_NUMBER」來自EMP; 拋出ORA-00972:標識符太長 – user2996364