不允许使用标量类型

2020-08-17 13:16发布

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

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


亲爱的

我正在尝试执行存储过程,但是当我尝试执行存储过程时,出现错误" SAP DBTech JDBC:[1310]:不允许标量类型:NHANG:第18行第2行(在pos 347)"。

出了什么问题? 我是SAP HANA的新手。 请帮助我。

感谢您的帮助!

创建过程AutoItemCode(
 在nhang nvarchar(50)中,
 在lhang nvarchar(50)
 )
 语言SQLSCRIPT
 如
 ba nvarchar(20)='000';
 hai nvarchar(20)='00';
 mot nvarchar(20)='0';
 开始
 DECLARE项目代码nvarchar(50);
 DECLARE ba nvarchar(20);
 DECARE hai nvarchar(20);
 声明mot nvarchar(20);
 ba ='000';
 hai ='00';
 mot ='0';
 nhang =从" SHF_DB_TEST"中选择"代码"。" @ UDT_NGANHHANG" T0其中"代码" = nhang;
 lhang =从" SHF_DB_TEST"中选择RIGHT(T0。" Code",2)。" @ UDT_LOAIHANG" T0其中LEFT(T0。" Code",2)=:nhang和T0。" Name" =:lhang;
 结束;
 

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

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


亲爱的

我正在尝试执行存储过程,但是当我尝试执行存储过程时,出现错误" SAP DBTech JDBC:[1310]:不允许标量类型:NHANG:第18行第2行(在pos 347)"。

出了什么问题? 我是SAP HANA的新手。 请帮助我。

感谢您的帮助!

创建过程AutoItemCode(
 在nhang nvarchar(50)中,
 在lhang nvarchar(50)
 )
 语言SQLSCRIPT
 如
 ba nvarchar(20)='000';
 hai nvarchar(20)='00';
 mot nvarchar(20)='0';
 开始
 DECLARE项目代码nvarchar(50);
 DECLARE ba nvarchar(20);
 DECARE hai nvarchar(20);
 声明mot nvarchar(20);
 ba ='000';
 hai ='00';
 mot ='0';
 nhang =从" SHF_DB_TEST"中选择"代码"。" @ UDT_NGANHHANG" T0其中"代码" = nhang;
 lhang =从" SHF_DB_TEST"中选择RIGHT(T0。" Code",2)。" @ UDT_LOAIHANG" T0其中LEFT(T0。" Code",2)=:nhang和T0。" Name" =:lhang;
 结束;
 
付费偷看设置
发送
2条回答
wang628962
1楼 · 2020-08-17 13:46.采纳回答

使用

 nhang =从" SHF_DB_TEST"中选择"代码"。" @ UDT_NGANHHANG" T0,其中"代码" = nhang; 

您正试图分配表类型的结果 到标量类型变量(以及定义为根本没有意义的输入参数的变量)。

要么定义表类型结果变量,要么创建标量类型结果变量并更改您的 声明如下:

选择顶部1"代码"从" SHF_DB_TEST"插入new_defined_scalar_type_variable。" @ UDT_NGANHHANG"其中"代码" =:nhang; 
微wx笑
2楼-- · 2020-08-17 13:47

当然 ,弗洛里安的答案是正确的。

从我的角度来看,一件事情真的很不错,那就是,如果HANA能够找出何时只有一个值从选择中返回的话。

如果选择内容涵盖了完整的主键,或者实际上包含了任何唯一键,那么分配就可以进行。 并且在"未找到数据"的情况下,可以将变量设置为NULL。

由于HANA具有有关表约束的所有信息,因此这应该是可能的,并且可能会稍微提高开发人员的生产率。

一周热门 更多>