使用变量的SQL语句在HANA上出现错误

2020-09-05 03:34发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在尝试编写如下的SQL语句,该语句获取最新完整数据备份的备份ID,并在备份ID之前删除备份。

--------------------------------------------------- ----------------------------------------
DO
BEGIN
DECLARE Y_BACKUP_ID BIGINT;
从M_BACKUP_CATALOG的SYS_START_TIME =中选择BACKUP_ID到Y_BACKUP_ID =(从M_BACKUP_CATALOG的SELECT最大(SYS_START_TIME)到ENTRY_TYPE_NAME ='完整数据备份'); > ------------------------------------------------- --------------------------------------

但是,我在下面出现错误。
有人可以告诉我此SQL语句在哪里出问题吗?

--------------------------------------------------- ----------------------------------------
无法执行"开始声明" Y_BACKUP_ID BIGINT; 从M_BACKUP_CATALOG WHERE中选择BACKUP_ID INTO Y_BACKUP_ID ...'
SAP DBTech JDBC:[257]:sql语法错误:":Y_BACKUP_ID"附近的语法不正确:第5列第45行(在pos 267)
---- -------------------------------------------------- ---------------------------------

谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在尝试编写如下的SQL语句,该语句获取最新完整数据备份的备份ID,并在备份ID之前删除备份。

--------------------------------------------------- ----------------------------------------
DO
BEGIN
DECLARE Y_BACKUP_ID BIGINT;
从M_BACKUP_CATALOG的SYS_START_TIME =中选择BACKUP_ID到Y_BACKUP_ID =(从M_BACKUP_CATALOG的SELECT最大(SYS_START_TIME)到ENTRY_TYPE_NAME ='完整数据备份'); > ------------------------------------------------- --------------------------------------

但是,我在下面出现错误。
有人可以告诉我此SQL语句在哪里出问题吗?

--------------------------------------------------- ----------------------------------------
无法执行"开始声明" Y_BACKUP_ID BIGINT; 从M_BACKUP_CATALOG WHERE中选择BACKUP_ID INTO Y_BACKUP_ID ...'
SAP DBTech JDBC:[257]:sql语法错误:":Y_BACKUP_ID"附近的语法不正确:第5列第45行(在pos 267)
---- -------------------------------------------------- ---------------------------------

谢谢。

付费偷看设置
发送
2条回答
南山jay
1楼-- · 2020-09-05 04:29

您正在执行选择查询,该查询返回表结果并将其分配给包含单个值的变量。

这样做。 (确保select查询返回单个值以避免聚合)

 DO
 开始
 DECLARE Y_BACKUP_ID BIGINT;


 SELECT SUM(BACKUP_ID)INTO Y_BACKUP_ID FROM M_BACKUP_CATALOG WHERE SYS_START_TIME =(SELECT max(SYS_START_TIME)FROM M_BACKUP_CATALOG WHERE ENTRY_TYPE_NAME ='complete data backup');


 BACKUP CATALOG删除BACKUP_ID之前的所有内容:Y_BACKUP_ID COMPLETE;


 结束;
 
空代码
2楼-- · 2020-09-05 04:17

第一个查询(SELECT语句)现在运行良好。

现在问题出在第二个查询(BACKUP)上。 请检查一下。 不确定该查询。

一周热门 更多>