执行下面语句时,总提示ORA-00984和ORA-06512:行4
不知道具体是什么地方有问题?
begin
  for i in 1..9
  loop 
    execute immediate 'insert into TB values ('
    ||'0'||to_char(i)||','
    ||'0000'||to_char(i)||','
    ||to_char(i)||','
    ||'0'||to_char(i)||','
    ||to_char(i)||','
    ||sysdate||','
    ||sysdate||','
    ||'userByFeng0'||to_char(i)||','
    ||'userByFeng0'||to_char(i)||','
    ||'FengId0'||to_char(i)||','
    ||'FengId0'||to_char(i)||','
    ||'0'||')';
  end loop;
  commit;
end;

解决方案 »

  1.   

    ORA-00984 column not allowed here  Cause 
    A column name was used in an expression where it is not permitted, such as in the VALUES clause of an INSERT statement.  
    Action 
    Check the syntax of the statement and use column names only where appropriate.  
      

  2.   

    ||'userByFeng0'||to_char(i)||','
    还有以上一下的句子中如果是字符串应该替换俩次
    ||'''userByFeng0'||to_char(i)||''','
    这样才能产生出执行是的SQL是'userByFeng0X'的效果(X从1-9)
    楼主的SQL会在values里产生一个
    userByFeng01,子句。相当于insert into table1(A) values(asdceasdasd);字符串的值没有引号,被系统理解为列!
    当然会出现里无效的错误