???
18:23:18   2  TYPE arr1 IS VARYING ARRAY (3) OF VARCHAR2(30);
18:23:18   3  TYPE arr2 IS VARYING ARRAY (3) OF VARCHAR2(30);
18:23:18   4  arr11 arr1:=arr1('FA1','FA2','FA3');
18:23:18   5  arr21 arr2:=arr2('v1','v2','v3');
18:23:18   6  i number;
18:23:18   7  begin
18:23:18   8    FOR i IN 1..3 LOOP
18:23:18   9     IF (arr11(i) = arr21(i)) THEN
18:23:18  10       DBMS_OUTPUT.PUT_LINE('OK!');
18:23:18  11     else
18:23:18  12       DBMS_OUTPUT.PUT_LINE('not!');
18:23:18  13     END IF;
18:23:18  14    END LOOP;
18:23:18  15  end;
18:23:18  16  /
not!
not!
not!PL/SQL 过程已成功完成。已用时间:  00: 00: 00.16
是这个意思吗?

解决方案 »

  1.   

    不好意思没说清楚,我的问题出在cousor.arr1(i)上,正常情况下使用cousor是"cousor.数据表字段名"可以取出当前游标所指记录的这个字段的值,现在要动态取出某个字段值,就一楼楼主的程序来说arr11是数据表中的字段名,arr21是比较数值,IF (arr11(i) = arr21(i))这句改成IF (cousor.arr11(i) = arr21(i)) 就是我想要表达式的意思了。当然,cousor是指向一个已存在记录集的游标。
    我是帮朋友问的我自己没有测试环境,不知道这句cousor.arr11(i)是否可行。
      

  2.   

    应该先 fetch cursor 的值到arr11(i) 中,再比较
    IF (arr11(i) = arr21(i))