declare 
 i number:=1;
 dy_sql varchar(100);
begin 
  dy_sql:='alter table tb_exam add d'||:a||' number';
 execute immediate dy_sql using i;  
end;
这段语句有问题怎么接解决啊!!!

解决方案 »

  1.   

    这个放到数据库那边比较好。调试看一下dy_sql值呢
      

  2.   

      dy_sql:='alter table tb_exam add d'||:a||' number';
     execute immediate dy_sql using i; 这个写法有问题吧
      

  3.   

    如下这样写就可以了啊
    declare 
     i number:=1;
     dy_sql varchar(100);
    begin 
      dy_sql:='alter table ax add d'||i||' number';
      execute immediate dy_sql; 
    end;