我們產品從SPC100升級到SPC200的時候,由於數據庫表列的數據類型發生了改變,需要寫SQL腳本,完成數據庫的升級。需要將表T_MOBILE_INDVCONFIG的主鍵列id從varchar2(100),改成number(17)。可以參考如下SQL:
--將原來的ID列重命名為bak_id ALTER TABLE T_MOBILE_INDVCONFIG RENAME COLUMN id TO bak_ID; --添加一個與原來的列一樣名字的列 ALTER TABLE T_MOBILE_INDVCONFIG ADD id NUMBER(17); --將bak_id中的數據轉換類型並保存到新加的ID列 UPDATE T_MOBILE_INDVCONFIG SET ID = CAST(bak_ID AS NUMBER(17)); --刪除原有的列 ALTER TABLE T_MOBILE_INDVCONFIG DROP COLUMN bak_ID; --設置新列屬性,這裡例子是設置為非空 ALTER TABLE T_MOBILE_INDVCONFIG MODIFY (ID NUMBER(17) NOT NULL); --重建主鍵,因為原來的已經被刪除,原來的ID列有索引的也需要重建 ALTER TABLE T_MOBILE_INDVCONFIG ADD CONSTRAINT PK_SYS_SMSGATE PRIMARY KEY (ID);