测试用例的表结构如下:
create table TT1 ( name1 VARCHAR2(32), name2 VARCHAR2(32), flag NUMBER(1) ) 出错的语句如下: declare i integer; begin for item in (select * from tt1) loop select count(*) into i from tt2 where name1=item.name2 and name2=item.name1; if i=0 then dbms_output.put_line('found'); end if; end loop; end;
解决过程: 我换了表,同样的语句,没有出错提示。最终发现是表内的字段名称问题,如果字段名称内包含数字,就要用双括号括起来,否则就会报如上错误。 |