Oracle批量修改表字段型別(儲存過程)

2022-02-15 23:58:36 字數 909 閱讀 4980

declare

cursor temp is select creditzs_code,attribute_code,attribute_info_type,t.id from credit_directory_attribute t,credit_directory_tree e where t.tree_id=e.id and attribute_info_type='number'and attribute_code in('cf_nr_fk','cf_nr_wfff');

str varchar2(100) := '';

att number;

begin

for s in temp loop

str := 'alter table '||s.creditzs_code||' modify('||s.attribute_code||' number(30,4))';

att :=1;

begin

execute immediate str ;

exception

when others then

att :=0;

end;

if att=1 then

update credit_directory_attribute set attribute_precision=4 where id=s.id;

end if ;

end loop;

end;

大致解釋:1.先查詢語句。2.將語句拼接後賦值給str。3. 正常執行的語句則返回att :=1。4.如果有錯誤資料則跳過錯誤語句繼續執行(exception when others then),且返回att :=0。 5. 當 att=1 時,則執行另外乙個語句。

oracle修改表字段

增加字段 alter table docdsp add dspcode char 200 刪除字段 alter table table name drop column column name 修改字段型別 alter table table name alter column column nam...

Oracle應用之修改表字段型別

mysql對於有資料和沒資料的表字段型別都可以隨意修改,不過oracle就不一樣。假如表a有個字段a,本來為number型別,然後我們想修改為varchar2型別。1 欄位a沒資料的情況,改為varchar2 10 可以如下 alter table a modify a varchar2 10 2 ...

Oracle修改表字段以及表型別

win7 oracle pl sql 一張表 lyz emp 建立表lyz emp create table lyz emp e id number 10 not null e oldname varchar2 2 not null primary key e id 測試表lyz emp是否建立成功...