2017-04-26 28 views
0

我想將計算列添加到Oracle中的全局臨時表中。 對於簡單的表格,請求運行良好。將計算列添加到臨時表中Oracle

alter table ma_table add ma_column as (column1*column2); 

但是對於暫時的它拒絕使用as。 有沒有辦法將新的計算列添加到Oracle中的臨時表中?

+0

錯誤消息非常強調。 「ORA-54010:表達式列不支持臨時表」。你爲什麼想這樣做? – APC

+0

這是項目約束,實際上是「alter table ma_table add ma_column;」如果請求被拒絕,那麼「as」正常工作。 – Mouad

回答

0

錯誤消息非常強調。 ORA-54010: expression column is not supported for a temporary table.

「alter table ma_table add ma_column;」如果請求被拒絕,那麼「as」正常工作。

AS是創建虛擬列的語法的必要位。但是這不是它的行爲語法。關於此的documentation is quite clear

「只能在關係堆表中創建虛擬列。虛擬列不支持索引組織,外部對象,集羣或臨時表。

在這種情況下,平臺的限制勝過您的項目需求。

+0

Okey謝謝,我找到了一種方法來做到這一點,我必須創建一個腳本來執行每個插入請求的更新請求。非常感謝。 – Mouad

1

我剛剛找到如何做到這一點, 我用ALTER要求

alter table ma_table add ma_column [type]; 

並經過添加列,創建執行插入請求時執行的更新請求腳本

update ma_table set ma_column=(colonne1*colonne2);