Abap 为什么“获取下一个光标”不选择任何数据?

Abap 为什么“获取下一个光标”不选择任何数据?,abap,opensql,Abap,Opensql,我有以下代码: OPEN CURSOR WITH HOLD dbcur FOR SELECT (it_attr) FROM (it_from) FOR ALL ENTRIES IN lt_filter_key WHERE (it_where). ... FETCH NEXT CURSOR dbcur INTO CORRESPONDING FIELDS OF TABLE ct_data_p PACKAGE SIZE iv_

我有以下代码:

OPEN CURSOR WITH HOLD dbcur FOR
      SELECT  (it_attr)
        FROM  (it_from)
        FOR ALL ENTRIES IN lt_filter_key
        WHERE (it_where).
  ...
    FETCH NEXT CURSOR dbcur INTO CORRESPONDING FIELDS OF TABLE ct_data_p PACKAGE SIZE iv_packsize.
当我使用参数A进行测试时,将显示正确的数据。 当我使用参数B进行相同测试时,不显示任何数据。哪个是错误的

我已经调试了报告,从中复制了值\u attr、it\u from、lt\u filter\u key和it\u where,并使用参数B报告执行中的这些值创建了我自己的选择。 在这种情况下,可以找到数据

参数来自选择屏幕:

仅使用参数B后的跟踪数据: 找不到任何数据

我从跟踪数据创建的SELECT语句: 找到数据

我在这两种情况下都使用了确切的WHERE子句值

值得一提的是:在opencursor命令之后,dbcur接收一个值,但在FECH NEXT CURSOR命令中,ct_data_p保持为空

发生这种情况的可能原因是什么?我应该尝试什么


我已经读到,如果打开了太多的游标,就会出现一条错误消息,但这里的情况并非如此

你在哪里的桌子上查过了吗?可能是您的B值在db上不存在,或者由于某些转换填充了where表而存在编码问题。我已经检查了where表,似乎没有问题。命令OPEN CURSOR似乎也可以正常工作,sy subrc=0,dbcur接收到的值1与我使用参数A时的值相同。SELECT没有返回任何内容的唯一原因是it_没有正确构建。经典问题是,数据库表中的许多值与显示的值不同,例如,有些数字存储时带前导零,但显示时不带前导零,语言代码存储为1个字符,但显示在2个E EN上,等等。请分享更多有关其实际内容的详细信息,这对我们会有帮助。PS:FETCH不是问题的根源;同样的问题也会发生在SELECT上。桑德拉的想法很好:尝试从跟踪中提取占位符:a00到:a03的精确值。我还注意到在显示的选择中有一个不同:生成的一个查询a92上的TSP_ID,手工制作的一个查询a00上的TSP_ID。这不会对内部连接产生影响,但不妨尝试一下。还有一个愚蠢的问题:~~你拔掉插头了吗?~~包大小真的大于0吗?