1樓:匿名使用者
2個辦法:
1. 使用備份表:
a. create table test as select * from a
b. drop table a ;
c. create table a(... -- 將ddd欄位改為char(20)
d. insert into a select * from test
e. drop table test2. 使用臨時列 用plsql deva. 為表增加類 ddd_tmp
b. update a set ddd_tmp = dddc. 刪除ddd列
d. 增加ddd列 char(20)
e. update a set ddd= ddd_tmpf. 刪除ddd_tmp列
2樓:
最便捷的方法就是:
先修改該列名為b,
然後給該表新增新列ddd char(20),接著update a set ddd=b;
最後刪除b列。
ok了~
3樓:
1.建立個臨時表 將資料匯入臨時表
create table temp as select * from table
2.truncate table 將char(30) 改為char(20)
3.將臨時表中的資料修改列 trim(a) 匯入table
4樓:夜冥明
alter table a add column ddd_tmp char(20);
update a set ddd_tmp = ddd;
alter table a set unused column ddd;
alter table a drop unused column;
alert table a add column ddd char(20);
update a set ddd = ddd_tmp;
alter table a set unused column ddd_tmp;
alter table a drop unused column;
表內修改
5樓:匿名使用者
試試這個辦法
1、把列修改為varchar2(30)
2、然後更新ddd=trim(ddd),此時空格都被去掉了,列長度都不大於20
3、把列修改為char(20)
6樓:匿名使用者
試下能不能先修改為varchar(30)再改為char(20)
7樓:匿名使用者
create table a_temp as select * from a;
delete from a;
alter table a modify (column) ddd char(20);
insert into a select * from a_temp;
以上方法也許能解決您的問題,請謹慎操作。
如何修改oracle資料庫的欄位型別長度
8樓:千鋒教育
1、通過來圖形介面操作,在左側依次選
源擇objects-tables,右鍵單擊bai要修改的du表名,選中『zhiedit』-column,可以直接修改;dao
2、使用ddl語句:alter table 表名 modify 欄位名(字元型別(長度))
例如:alter table emp modify ename(varchar2(32))
oracle 已經建好的表怎麼修改欄位大小?
9樓:匿名使用者
根據欄位型別決定
alter table 表名 modify 欄位名 varchar2(長度); 或
alter table 表名 modify 欄位名 number(長度 );
只能改大。
想改小隻能重新建表將資料導到新表,再將舊錶drop掉。
10樓:
alter table a modify(id number(20));
11樓:匿名使用者
alter table a modify column 欄位 型別
12樓:帶著光圈的小雞
對二樓進行補充
欄位型別為
如果想改小,沒有資料可能直接用 alter table table_name modify column datatype;
如果有資料,改小的話可以會丟失資料。
比如:表:stu(name varchar2(20)) 要將欄位name的長度改為10
表中有一條資料:name(中國華西村刀光劍影) 長度超過10,擷取的時候必然要丟失資料。
當然 如果表中的資料長度都小於10,則可以用sql語句段來直接搞定。
begin
alter table stu add (name2 varchar2(10)); 增加新欄位
update stu set name2=substr(trim(name),1,10); 賦值給新欄位
alter table stu drop(name); 刪除原欄位
alter table stu rename column name2 to name; 將新欄位改名
end;
在oracle中怎麼查詢某個欄位的長度
13樓:二鍋頭就是二
select * from 表名 where length(nvl(欄位,''))=1 order by 欄位
例如:一個列裡面有長短不一的數字如何判斷數字的長度
如:i_code
使用select i_code from tablename where length(i_code)=4。即可算出答案
另外,一個漢字在oracle資料庫裡佔多少位元組跟資料庫的字符集有關,utf8時,長度為三。select lengthb('飄') from dual 可查詢漢字在oracle資料庫裡佔多少位元組
擴充套件資料
查詢包含dno欄位,且欄位長度<10的表,使用如下函式
select * from user_tab_cols t where t.column_name like '%dno%' and data_length < 10;
有時候資料庫中有很多表包含同一個欄位時,要修改表欄位長度,可以通過這個查詢哪些需要修改。
14樓:匿名使用者
可以用select length(欄位名) from 表名;
這句是看錶中所有這個欄位的長度
如果是select length(欄位名) from 表名where 要查詢那個記錄;
這樣就可以了。。。
15樓:笑看風雲天然
select table_name,column_name,data_type,data_length from user_tab_columns where table_name='your table' and column_name='column_name ' (注意替換字串,必須用大寫字母)
16樓:
用length('column')方法!
17樓:仗劍折花
select column_name as 欄位名, data_type as 資料型別, data_length as 資料長度
from user_tab_columnswhere table_name = 'emp'
and column_name in ('ename','sal')
18樓:匿名使用者
用length
例如:select length(某個欄位) from 表
修改資料庫中表的,修改資料庫中表的id
仙戈雅 工程量會很大。步驟是找到某表的外來鍵有那些,然後主鍵修改後緊接著修改它的外來鍵裡對應的表的值。 sql的藝術 思路 1 首先搞清楚所有表的主外來鍵關係 2 取消全部表的主鍵自增標識列,方便你後續的直接修改id 例如 exec sp configure allow updates 1 reco...
oracle資料庫,使用者表主要表欄位為 userID id
隨o天 這裡不存在排序不正常的情況。由於使用者與部門是多對多的關心,你的排序順序不可能固定不變,而是根據需要來確定排序的順序。例如 當處理以使用者為主,檢視使用者在各部門的情況時,要按先使用者後部門的順序排序 當處理以部門為主,檢視各部門使用者的情況時,要按先部門後使用者的順序排序。 不清除你所指的...
在oracle資料庫如何查詢某個欄位在哪些表中出現過
育知同創教育 在oracle資料庫查詢某個欄位在哪些表中出現過的方法是關聯所有的表然後查詢欄位的值,如果為空就是沒有出現過。在之前所使用的查詢操作之中,都是從一張表之中查詢出所需要的內容,那麼如果現在一個查詢語句需要顯示多張表的資料,則就必須應用到多表查詢的操作,而多表查詢的語法如下 select ...