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是否建立成功...