修改oracle有数据字段长度
create or replace function pc_modicolumnSize(ptableName in varchar2,
pfieldName in varchar2,
ptype in varchar2)
return integer is
-- Author : YANLEI
-- Created : 2007-12-30 11:49:11
-- Purpose : 修改字段长度
sqlstr varchar2(1024);
tempFieldname varchar2(32);
begin
tempFieldname := 'wwwXXX';
begin
sqlstr := 'alter table ' || ptableName || ' add ' || tempFieldname || ' ' ||
ptype;
execute immediate sqlstr;
exception
when others then
dbms_output.put_line(SQLstr || '字段已存在');
end;
sqlstr := 'update ' || ptableName || ' set ' || tempFieldname || '=' ||
pfieldName;
execute immediate sqlstr;
sqlstr := 'update ' || ptableName || ' set ' || pFieldname || '=null';
execute immediate sqlstr;
sqlstr := 'ALTER table ' || ptableName || ' modify ' || pFieldname || '
' || ptype;
execute immediate sqlstr;
sqlstr := ' update ' || ptableName || ' set ' || pFieldname || ' = ' ||
tempfieldName;
execute immediate sqlstr;
sqlstr := ' alter table ' || ptableName || ' drop column ' ||
tempfieldName;
execute immediate sqlstr;
commit;
return 1;
execute immediate sqlstr;
exception
when others then
dbms_output.put_line(SQLERRm);
dbms_output.put_line(SQLcode);
dbms_output.put_line(SQLstr);
rollback;
return - 1;
end;