Oracle 生產上表的列型別更新

2022-05-13 06:07:37 字數 709 閱讀 4240

由於粗心,資料庫指令碼生成的時候錯將乙個型別number(5)的字段型別改為 varchar2(5)

直接進行表修改會報錯,因為資料已經存在,不能進行更新:

alter

table 表名 modify 表名.列名 number(5);

大體思路如下:

將要更改型別的欄位名改名以備份,然後新增乙個與要更改型別的欄位名同名的字段(原欄位已經改名),然後更新資料,最後刪除改名備份的字段。

以下操作在 oracle 10.2.0.1.0 中通過。

/*

修改原欄位名

*/alter

table 表名 rename column 欄位名 to

欄位名1;

/*新增乙個和原欄位同名的字段

*/alter

table 表名 add 欄位名 number(5

);/*

將原來的資料更新到新字段中

這是要注意,一定要顯示進行資料型別轉換(不同於mssql)

*/update 表名 set 欄位名 =

cast(欄位名1 as

number(5

));/*

刪除原來的備份字段

*/alter

table 表名 drop

column 欄位名1;

參考:

生產上的NameNode堆記憶體估算

在hdfs中,資料和元資料是分開儲存的,資料檔案被分割成若干個資料塊,每乙個資料塊預設備份3份,然後分布式的儲存在所有的datanode上,元資料會常駐在namenode的記憶體中,而且隨著資料量的增加,在namenode中記憶體的元資料的大小也會隨著增加,那麼這個時候對namenode的記憶體的估...

記生產上的一次事故

問題描述 生產環境上,使用者在登入登出時跳轉到了空白頁面,觀察位址列發現由原本的https變成了http,但是在測試環境上sit uat都是正常的。生產環境的部署大致是這樣子 ssl nginx f5 應用,在訪問ssl的時候請求是https,到了nginx請求就已經變成了http,proxy re...

關於git版本回退,設計實際生產上線的問題

前情是這樣的 前端 一直是乙個人維護,因此只是開了乙個個人分支,然後不管是新功能開發還是bug修復什麼的,都往那乙個分支上提交。需要上線的時候會merge到上線的分支,一直以來都是這麼幹的,但是今天出問題了。通過這個問題我也有了反思。具體見下文 問題是這樣的 需要上線hyh分支最新的一次修復bug的...