Oracle中使用SQL語句修改字段型別總結

2021-06-18 12:54:39 字數 1485 閱讀 5931

一.如果表中沒有資料:

直接這樣就可以了

alter table 表名 modify (欄位名 型別)

如 alter table student (id number(4));

二.如果原表中存在data那麼方法就大不相同了

alter table 表名 rename column 欄位名 to 欄位名1;

alter table 表名 add 欄位名 varchar2(30);

update 表名 set 欄位名 = cast(欄位名1 as varchar2(30));

alter table 表名 drop column 欄位名1;

下面是我pl/sql中 實際操作時執行的語句

*修改原欄位名*/

alter table xinfei_ims.t_dispatch_loading rename column receive_sheet_time to receive_sheet_time1;

alter table xinfei_ims.t_dispatch_loading add receive_sheet_time date;

update xinfei_ims.t_dispatch_loading set receive_sheet_time = cast(receive_sheet_time1 as date);

alter table xinfei_ims.t_dispatch_loading drop column receive_sheet_time1;

*修改原欄位名*/

alter table xinfei_ims.t_dispatch_loading rename column receive_sheet_time to receive_sheet_time1;

alter table xinfei_ims.t_dispatch_loading add receive_sheet_time date;

update xinfei_ims.t_dispatch_loading set receive_sheet_time = cast(receive_sheet_time1 as date);

alter table xinfei_ims.t_dispatch_loading drop column receive_sheet_time1;

但是這樣做會出現如果修改的是主鍵,修改後主鍵的位置會發生移動,會出現在最後一列,這樣就先建新表(按照需要的表結構),然後用insert into new_table select column1,column2... from old_table(或者insert into new_table(column1,column2...) select column1,column2... from old_table)就將原表中的值複製過去了,又保證列對應。但是如果資料較多的話執行的時間會比較一般sql要長,需要多等待一會。另外還要記得commit。

oracle中使用SQL遞迴語句

場景 常見的領導關係樹結構,知道某一節點id,要查出此節點的所有下級 直接下級和間接下級 此時需要使用sql遞迴語句。oracle中的遞迴語句 start with connect byprior 例子 pid id a b a c a e b b1 b b2 c c1 e e1 e e3 d d1...

Oracle中使用SQL語句修改字段型別

分兩種情況 1.表中沒有資料 alter table 表名 modify 欄位名 型別 eg alter table student id number 4 2.表中有資料 修改原欄位名 alter table 表名 rename column 欄位名 to 欄位名1 新增乙個和原欄位同名的字段 a...

ACCESS中使用SQL語句

以下sql語句在access xp的查詢中測試通過 建表 create table tab1 id counter,name string,age integer,date datetime 技巧 自增字段用 counter 宣告.欄位名為關鍵字的字段用方括號括起來,數字作為欄位名也可行.建立索引 ...