在Oracle 10G中創建的數據庫中有一個表,它包含一個'VARCHAR'類型的列,並將日期保存爲字符串格式 - > 'DD-MON-YYYY' 如:'12 -aug-2008' 現在我想從這個VARCHAR列的數據類型更改爲DATE但是當我藉此在此查詢 - >在SQL/ORACLE中將列的數據類型「varchar」更改爲「DATE」
ALTER TABLE sales_order
MODIFY COLUMN delivery_date DATE;
。我得到以下錯誤
ORA-00905:缺少關鍵字
我也曾嘗試:
ALTER TABLE sales_order
ALTER COLUMN delivery_date DATE;
我得到了錯誤:
ORA-01735:無效的ALTER TABLE選項
然而,當我嘗試添加一個新柱DATE數據類型,它工作正常。 例如:
ALTER TABLE sales_order
ADD delivery DATE;
所以,任何人都可以建議我的方式來改變數據類型,但不刪除列及其數據。
關鍵字'column'是可選的,那麼括號是也。 'ALTER TABLE sales_order的MODIFY DELIVERY_DATE DATE'是正確的語法爲好。但是從'varchar'改爲'date'將導致'ORA-01439:列修改必須是空的改變datatype' –
@ a_horse_with_no_name我同意你的說法,這意味着我必須遵循paxdiablo建議的步驟。我還計算出來,在它們是不相容的,或者如果我們正在減少精度數據類型的轉換(例如:浮子INT),它給錯誤'柱必須empty.' –