2009-11-19 56 views
0

我有一個關於使用其他表創建表的問題。創建爲oracle中的select

我的代碼:

create table TB_OLAP_TELEFONIA as 

select ID    AS LOG_ID, 
     HORAFIM   AS LOG_HORA, 
     DURACAO   AS LOG_DURA, 
     TO_CHAR(HORAFIM, 'D') AS LOG_DIA_SEMANA, 
     TO_NUMBER(SUBSTR(NUMEROA, 3, 1)) AS LOG_NUMA_TIPO, 
     TO_NUMBER(SUBSTR(NUMEROA, 3, 1)) AS LOG_NUMB_TIPO, 
     SUBSTR(NUMEROA, 1, 2)) AS LOG_NUMA_ESTADO,   
     SUBSTR(NUMEROA, 1, 2)) AS LOG_NUMB_ESTADO 

from  DADOS_COLUNA_OLAP 

的sintax是不正確的,我不記得了「是」的地方有什麼用給正確的名稱列。

一些很好的膠水? 謝謝!

+1

你不記得語法? Oracle參考站點是否已關閉?不可用? – 2009-11-19 13:51:29

回答

2

太多))

create table TB_OLAP_TELEFONIA as 

select ID    AS LOG_ID, 
     HORAFIM   AS LOG_HORA, 
     DURACAO   AS LOG_DURA, 
     TO_CHAR(HORAFIM, 'D') AS LOG_DIA_SEMANA, 
     TO_NUMBER(SUBSTR(NUMEROA, 3, 1)) AS LOG_NUMA_TIPO, 
     TO_NUMBER(SUBSTR(NUMEROA, 3, 1)) AS LOG_NUMB_TIPO, 
     SUBSTR(NUMEROA, 1, 2) AS LOG_NUMA_ESTADO,   
     SUBSTR(NUMEROA, 1, 2) AS LOG_NUMB_ESTADO 

from  DADOS_COLUNA_OLAP 
3

的CTAS語法是正確的。你的問題是一個cut'n'paste錯誤。更換

SUBSTR(NUMEROA, 1, 2)) AS LOG_NUMA_ESTADO, 
SUBSTR(NUMEROA, 1, 2)) AS LOG_NUMB_ESTADO 

SUBSTR(NUMEROA, 1, 2) AS LOG_NUMA_ESTADO, 
SUBSTR(NUMEROA, 1, 2) AS LOG_NUMB_ESTADO 

編輯

,而我在這我要指出,你兩次substringing同一列,但不同的別名。你有意這麼做嗎?

SUBSTR(NUMEROA, 1, 2) AS LOG_NUMA_ESTADO, 
SUBSTR(NUMEROB, 1, 2) AS LOG_NUMB_ESTADO 
      ^

如果是這樣,您需要在兩個地方修正列名。

+0

好點!但幾分鐘前就看到了。 謝謝。 – Custodio 2009-11-19 14:31:03