日期:2014-05-17  浏览次数:20780 次

关于oracle添加字段的问题
v_ssql:= 'alter   table   a   add   g   number(10) ';
    tableaddcolumn(v_ssql);
    v_ssql:= 'insert   into   a(g)
    values   (10); ';
    tableaddcolumn(v_ssql);
    open   cur_out   for     select   *   from   a;

tableaddcolumn   就一个execute   immediate语句的存储过程

为什么每次执行insert   into   a(g)
    values   (10);   都报   g   字段没找到

------解决方案--------------------
SQL> create table a (id number);

Table created

SQL>
SQL> declare
2 v_ssql varchar2(100);
3 begin
4 v_ssql:= 'alter table a add g number(10) ';
5 execute immediate v_ssql;
6 v_ssql:= 'insert into a(g) values (10) ';
7 execute immediate v_ssql;
8 commit;
9 end;
10 /

PL/SQL procedure successfully completed

SQL> select * from a;

ID G
---------- -----------
10

没有问题啊