点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好。
我正在尝试从系统的当前日期获取abap转储的数量。
如果我使用yyyymmdd格式的日期手动输入。 它为我提供了当前日期的结果。
从SAPSR3.snap中选择计数(*),其中datum ='&3'和SEQNO ='000';
但是,如果我尝试使其自动化而不是手动给出日期。 我遇到错误
从SAPSR3.snap中选择计数(*),其中datum ='sy-datum'和SEQNO ='000';
datum ='sy-datum'不起作用。
请帮助。
此致
Gurprinder
如果您在Oracle SQL控制台中直接输入一个SQL查询(如您在一条评论中所述),那么使用ABAP" sy-datum"是没有意义的,Oracle根本不会识别它! 如果要使用Oracle SQL函数表示" YYYYMMDD格式的当前日期",请阅读Oracle文档或在Oracle论坛中询问。
Oracle文档说有效的Oracle SQL类似于 :
CURRENT_DATE:https://docs.oracle.com/database/121/SQLRF/functions051.htm#SQLRF00628
TO_CHAR: https://docs.oracle.com/database/121/SQLRF/functions216 .htm#SQLRF06129
SAP SQL Anywhere数据库系统是否发生此问题? 如果不是这样,您可能想使用更合适的标签重新标记。 您可能要包括所得到的错误。 我的猜测是" sy-datum"被视为字符串sy-datum,而不是变量值。
您好 Gurprinder Padda ,
可以 您请更新我们您的数据库版本? 您是通过自动执行失败来提及的,它是将失败的SQL号作为原因还是您是如何进行自动化的,请您花点时间让我们理解
请检查应用服务器和数据库服务器 计时是否有差异
请您尝试使用" sy-uzeit"或" l_date = sy-datum"
请检查以下内容,
https://blogs .sap.com/2014/04/14/how-to-format-sy-datum-in-various-routines-in-sap-bi/
谢谢,
Kaushik
您在哪里编写查询? 如果将sy-datum放在''中,则它将成为sy-datum的字符串,而不是其值。
HI Kaushik,
Oracle Database 12c企业版12.1.0.2.0版-64位生产
下面是命令的输出。 我认为sy-datum日期格式为dd-mm-yyyy,而sql格式则需要yyyymmdd
SQL>从SAPSR3.snap选择计数(*),其中SEQNO ='000'和datum ='sy-datum'; COUNT(*)
---------- 0
SQL>
如果我手动输入日期,我将得到以下输出
SQL>从SAPSR3.snap选择计数(*),其中datum ='&3'和SEQNO ='000';
输入3的值:20190902
old 1:从SAPSR3.snap中选择计数(*),其中datum ='&3'和SEQNO ='000'
新1:从SAPSR3.snap选择计数(*),其中datum ='20190902'和SEQNO ='000'
COUNT(*)
----------
15
SQL>
带有" l_date = sy-datum";
SQL>从SAPSR3.snap选择计数(*),其中SEQNO ='000'和" l_date = sy-datum";
从SAPSR3.snap中选择计数(*),其中SEQNO ='000'和" l_date = sy-datum" *
第1行出现错误:ORA-00920:无效的关系运算符
SQL>
谢谢Sandra。
我没有Oracle经验,但是WITH似乎需要以下格式:
X为(。。。)
您的问题与SQL Anywhere无关。 您应该重新标记该问题,以便您的问题对那些具有Oracle知识的人都可见。
一周热门 更多>