我正在使用Oracle並且有一個包含長數據類型的表。自那以後,我發現這是遺留的,我應該使用LOB。我現在也想我可以使用NUMBER(10,0)。將LONG數據類型列分配到NUMBER數據類型列
我想將列從長數據類型轉換爲NUMBER數據類型。
這是我的SQL到目前爲止。
ALTER TABLE BUDGET ADD AMT2 NUMBER(10,0);
UPDATE BUDGET SET AMT2 = AMT;
ALTER TABLE BUDGET DROP COLUMN AMT;
ALTER TABLE BUDGET RENAME COLUMN AMT2 TO AMT;
的AMT列是LONG 新AMT2列是我的電話號碼的新列(10,0)
的問題是分配給長了一些,當我得到一個錯誤。這是在更新行(第2行)這我認爲是由於數據截斷。
的錯誤是
SQL Error: ORA-00932: inconsistent datatypes: expected NUMBER got LONG
中的所有列的數據小於10000,所以我想迫使甲骨文忽略任何數據截斷(因爲我不認爲應該有任何)。我如何將長數據分配給數字數據列?
謝謝
Oracle中的'LONG'數據類型用於存儲大量文本數據。所以把它轉換成「NUMBER」似乎很奇怪。你是否說過,不僅所有數據都是4個字節或更少,並且存儲在「LONG」列中的字符都只是數字?此外,你聲明你得到一個錯誤,但你不告訴我們是什麼錯誤。 –
謝謝賈斯汀。我添加了錯誤。有趣的長。我認爲這是一個數字在java中很長。此列僅包含數字 – RNJ
['LONG'數據類型文檔](http://docs.oracle.com/cd/E11882_01/server.112/e26088/sql_elements001.htm#sthref136)以供參考。 –