隐藏警告的杂注:where 条件中使用的字段可能包含空值

2024-01-01

我正在寻找一个编译指示,可以用来隐藏当选择的 WHERE 条件中使用的字段可能包含数据库中的 NULL 值时生成的编译器警告。

阅读 SAP note 1088403 后,我知道这里可能存在问题,但我无法应用那里建议的解决方案,因为我在 WHERE 子句中使用的是范围,而不是单个值。无论哪种情况,这都是遗留代码,从未被发现有缺陷(据我们所知),并且很快就会被替换。

然而,当我重写程序的其他部分时,我想使用以下命令禁用此警告pragma http://help.sap.com/abapdocu_702/en/abenpragma.htm。谁能告诉我我可以使用什么pragma来实现这个目的?

选择示例:

SELECT d~matnr d~werks d~lgort d~bdmng k~maktx
INTO CORRESPONDING FIELDS OF TABLE itab
FROM resb AS d
INNER JOIN makt AS k ON d~matnr = k~matnr
WHERE
    k~spras = syst-langu
    AND d~werks = p_werks
    AND d~matnr IN s_matnr
    AND d~bwart IN r_bwart.

请注意,我已经将此选择替换为使用动态 where 子句的选择,该子句也隐藏了警告,因为编译器显然无法检查基于文本的 where 。


如果您对包含此代码片段的程序运行扩展语法检查,您将看到它明确指出没有编译指示来抑制此情况(强调我的):

程序: 行:
语法检查警告
WHERE 条件中使用的字段“BWART”可能包含 NULL 值。
内部消息代码:MESSAGE GYT
无法使用编译指示或伪注释来抑制

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

隐藏警告的杂注:where 条件中使用的字段可能包含空值 的相关文章

  • 确定 ABAP 中的活动格式设置

    As the 格式化设置的ABAP文档解释 格式设置设置如下 在内部会议开始时 他们是由相关默认设置决定当前用户的用户主记录中的固定值 使用语句 SET COUNTRY 这是当前内部会话的默认设置可以使用特定于国家 地区的格式进行覆盖 但作
  • ROW_NUMBER() 的打开 SQL 等效项

    是否有等效的ROW NUMBER ABAP程序的函数 该函数在SQL中的使用如下 SELECT ROW NUMBER OVER ORDER BY SomeField AS Row FROM SomeTable 它应该返回行号作为结果行中的第
  • “#pragma Once”是否有可能导致错误?

    我所有的头文件都使用包括警卫也杂注一次 pragma once ifndef FILE NAME H define FILE NAME H class foo foo interface endif FILE NAME H 我明白那个杂注一
  • Qt Creator 中的代码折叠(#pragma zone)

    Qt Creator 中是否有类似于用于折叠的显式代码区域的内容 pragma region Region 1 void Test void Test2 void Test3 pragma endregion Region 1 我可以看到逻
  • 在 WHERE 中使用 =、>=、<= 条件优化 LOOP AT

    我的内表包含大量数据 我有以下代码 LOOP AT lt tab INTO ls tab WHERE value1 EQ lv id1 AND value2 LE lv id2 AND value3 GE lv id3 IF ls tab
  • C++:#pragma comment(lib, "XXX") 实际上对“XXX”做什么?

    我的背景是 C 但我必须保留一些遗留的 MS C 在那个代码库中我偶然发现 pragma comment lib OtherLib700 lib 其中 700 是一些版本控制 除此之外 该库还有一个同名的 DLL 我首先认为该程序将依赖于
  • sap abap 中系统忽略条件的循环

    我尝试应用带有条件的循环来总结相应的行 字段 其中条件应该是正确的 但在系统运行期间 程序忽略了条件并总结了所有行 有什么建议来解决这个问题吗 SELECT FROM LIPS INTO CORRESPONDING FIELDS OF TA
  • 访问 RFC 调用系统的堆栈内存

    当程序在 SAP ECC 中运行时 系统堆栈 存储所有全局变量 无论在该单个会话中调用什么模块 程序 当它调用支持 RFC 的功能模块 FM 时 会在被调用系统中创建一个新的系统堆栈 并且当被调用 FM 完成时 只能在 ECC 中检索被调用
  • 在ABAP中使用自定义消息引发异常

    我正在编写一个通过 RFC 调用的函数 我想找到最简单的方法来在 ABAP 中使用自定义消息引发异常 如果这可以尽可能短地完成 并且可以在一行上完成 那就太好了 我希望它用于调试 而不是用于运行生产代码 背景 过去我使用Python编程语言
  • 如何以编程方式判断系统是 R/3 还是 S/4

    是否可以通过代码判断当前系统是R 3还是S 4 我需要它 因为我有一个返回人力资源相关数据的软件组件的方法 但这个组件应该与R 3和S 4系统不同 DATA lv software component mo configuration gt
  • 为什么在 GCC/C++ 中“pragma GCC Diagnostic Push”会弹出警告?

    pragma GCC diagnostic push it pop warning expected error warning ignored after pragma GCC diagnostic 为什么 我在 Linux 中使用 GC
  • 方法调用作为另一个方法调用的参数?

    我是abap OO 的新手 但之前用java开发过 并编写了一个abap cl caretaker 类 它应该处理数据库表及其本地副本 实习生表 上的操作 我想进行以下方法调用 caretaker gt show table caretak
  • 如何在仅引用数据的表中循环

    我正在使用功能模块RSAQ QUERY CALL 取回一张桌子 DATA gr data TYPE REF TO data CALL FUNCTION RSAQ QUERY CALL EXPORTING query ZXXXXXXXX us
  • 缓慢选择所有条目

    下面的 SELECT 与内部表一起运行GIT KUNNR TAB包含 2 291 000 条具有唯一客户 kunnr 的行 需要 16 分钟才能完成 select kunnr umsks umskz gjahr belnr buzei bs
  • #pragma mark 未列出第一个组名称

    我在用着 pragma mark将我的方法分组到某些类别下 但问题在于Xcode 4我的第一个类别没有显示 我的代码如下所示 interface MyClass NSObject pragma mark pragma mark Catego
  • 调用 HTTP_POST 时出现 Bad Request 错误?

    我有一个关于 SAP 功能模块 http post 的问题 我只想将 SAP 中的一条短消息 msg 发布到我之前安装的推送通知服务器 pushd Github Projekt 现在我不知道如何传递消息 我用测试符号测试了 FM CALL
  • 将 JSON 反序列化为表

    我需要根据通过 API 接收的数据填充 ABAP 中的表 我正在使用以下 ABAP 函数从 json 填充现有的 ABAP 表 JSON 是正确的 表中包含相应的表 ui2 cl json gt deserialize EXPORTING
  • 在ABAP中显示消息语句内的变量

    如何在不使用消息类的情况下显示消息语句中的变量 IF acct bal lt min bal MESSAGE customer balance less than minimum Balance gt acct bal TYPE E END
  • #pragma init 和 #pragma fini 在 Linux 上使用 gcc 编译器

    我想构建一些代码 在加载共享库时调用一些代码 我想我会这样做 pragma init my init static void my init do something int add int a int b return a b 所以当我用
  • 过渡到面向对象的ABAP?

    看来我们大多数 SAP 程序员都在使用旧版本的 ABAP 也就是面向对象之前的版本 我还注意到 面向对象的语言更加干净 更加现代 他们显然借此机会摆脱了不推荐使用的东西 由于该系统尚未推出 因此重新设计的时机宜早不宜迟 是否值得要求将新代码

随机推荐