从SAPSR3.snap中选择计数(*),其中SEQNO ='000',数据='sy-datum';

2020-08-25 03:19发布

         点击此处--->   EasySAP.com群内免费提供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

         点击此处--->   EasySAP.com群内免费提供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

付费偷看设置
发送
9条回答
me_for_i
1楼 · 2020-08-25 03:24.采纳回答

如果您在Oracle SQL控制台中直接输入一个SQL查询(如您在一条评论中所述),那么使用ABAP" sy-datum"是没有意义的,Oracle根本不会识别它! 如果要使用Oracle SQL函数表示" YYYYMMDD格式的当前日期",请阅读Oracle文档或在Oracle论坛中询问。

Oracle文档说有效的Oracle SQL类似于 :

从SAPSR3.snap中选择计数(*),其中数据= TO_CHAR(CURRENT_DATE,'FXYYYYMMDD')和SEQNO ='000'

CURRENT_DATE:https://docs.oracle.com/database/121/SQLRF/functions051.htm#SQLRF00628

TO_CHAR: https://docs.oracle.com/database/121/SQLRF/functions216 .htm#SQLRF06129

骆驼绵羊
2楼-- · 2020-08-25 03:46

SAP SQL Anywhere数据库系统是否发生此问题? 如果不是这样,您可能想使用更合适的标签重新标记。 您可能要包括所得到的错误。 我的猜测是" sy-datum"被视为字符串sy-datum,而不是变量值。

太Q了
3楼-- · 2020-08-25 03:49

您好 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

半个程序猿
4楼-- · 2020-08-25 03:42

您在哪里编写查询? 如果将sy-datum放在''中,则它将成为sy-datum的字符串,而不是其值。

樱桃小丸子0093
5楼-- · 2020-08-25 03:48

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>

小c菟菟
6楼-- · 2020-08-25 03:24

谢谢Sandra。

哎,真难
7楼-- · 2020-08-25 03:32

我没有Oracle经验,但是WITH似乎需要以下格式:

X为(。。。)

您的问题与SQL Anywhere无关。 您应该重新标记该问题,以便您的问题对那些具有Oracle知识的人都可见。

一周热门 更多>