update like this:
create or replace procedure test(tablename varchar2,columnname varchar2)
as
begin
execute immediate 'alter table '||tablename||' add '||columnname||' number(38)'; 
end;

解决方案 »

  1.   

    create or replace procedure change_column(tablename varchar2,columnname varchar2)
    as
    str varchar2(50);
    begin
    str:='alter table'|| tablename||' add t number(38)'; 
    execute immediate str;
    str:= 'update '||tablename||' set t= '||columnname;
    execute immediate str;
    str:='alter table '||tablename||' drop '||columnname;
    execute immediate str;
    str:='alter table '||tablename||' rename column t to '||columnname;
    execute immediate str;
    end;
    这样行吗?好像运行的时候说找不到字符串。为什么?
      

  2.   

    str:='alter table'|| tablename||' add t number(38)'; 要改为
    str:='alter table '|| tablename||' add t number(38)'; 
                     
                     * 这里少了个空格
      

  3.   

    str:='alter table '||tablename||' add (t number(38))';