procedure ModifyFieldName
(
    in_NewName  in  varchar2,
    out_result  out varchar2
)
is
begin
    alter tablename
    modify fieldname in_NewName
    out_result := 0;
exception
when others then
    out_result := 1;
end;

解决方案 »

  1.   

    create or replace RenameTable(oldName string,newName string)
    as
      sql string(1000);
    begin 
      sql='alter table '||oldName||' to '||newName||;
      execute imediate sql;
    end RenameTable;
    /
      

  2.   

    為了增強健壯性,可以先判斷是否存在該oldName:
    create or replace RenameTable(oldName string,newName string)
    as
      sql string(1000);
      v_i integer;
    begin 
      select count(*) into v_i from tab where table_name=''||oldName||'';
      if v_i>0 then
        sql='alter table '||oldName||' to '||newName||;
        execute imediate sql;
      end if;
    end RenameTable;
    /
      

  3.   

    不好意思,我是说修改表中字段的名称(比如说:有一个name字段,我想把他修改成newname)不是修改表的名称
      

  4.   

    alter table table_name
    modify name to newname  char(1) ;我也初学,好像是这样的吧