修改oracle有数据字段长度

 

修改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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值