从视图中阅读

2020-08-16 21:21发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在尝试使用DB输...

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

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


大家好,

我正在尝试使用DB输入适配器从Hana View读取数据。 得到以下错误。 您能帮上忙吗?

 [SP-3-100005](951.205)sp(16378)从结果集中检索列1的值时出错。
 [SP-3-100005](951.205)sp(16378)由于错误检索列数据,结果行被跳过。
 DBInput_Adapter :: getNext()getData失败。 消耗0条记录,65,821读取,65,821不良,0良好。
2条回答
暮风yp
2020-08-16 21:51

这里有几种可能性。 最可能的两个是:

1)您正在读取的数据库列与输入流/窗口中的字段定义之间的数据类型不匹配

2) 源和输入流/窗口之间的列可能不匹配。

如果您检查了数据类型并且看起来正确,那么请确保指定了从源到流的列的排列(映射)。

这是一个简短的示例,显示了输入适配器和输出适配器的排列映射:

创建输入流VBAP_stream1 SCHEMA
 (MATNR整数,
 MATKL琴弦
 ARKTX字符串,
 NETWR_SUM十进制(15,2)
  );




 ATTACH INPUT ADAPTER Generic_DB_Input1 TYPE db_in
 到VBAP_stream1
 性质
 服务='hana_service',
 query ='从STREAMING_USER.VBAP_SOURCE GROUP BY MATNR,MATKL,ARKTX选择SELECT MATNR,MATKL,ARKTX,SUM(NETWR)NETWR_SUM',
 table ='\" STREAMING_USER \"。\" VBAP_SOURCE \"",
 花期= 10
 排列='MATNR = MATNR:MATKL = MATKL:ARKTX = ARKTX:NETWR_SUM = NETWR_SUM';


 附加输出适配器HANA_Output1 TYPE hana_out
 到VBAP_stream1
 性质
 服务='hana_service',
 sourceSchema ='STREAMING_USER',
 table ='VBAP_DESTINATION',
 排列='MATNR = MATNR:MATKL = MATKL:ARKTX = ARKTX:NETWR_SUM = NETWR_SUM';
 

在HANA数据库中将源表和目标表定义为:

创建列表STREAMING_USER.VBAP_SOURCE
 (MATNR INTEGER,
 MATKL CHAR(30),
 ARKTX CHAR(30),
 NETWR十进制(15,2)
  );
 
  创建列表STREAMING_USER.VBAP_DESTINATION
 (默认情况下,ROW_ID BIGINT主键是作为身份生成的,
 MATNR整数
 MATKL CHAR(30),
 ARKTX CHAR(30),
 NETWR_SUM十进制(15,2)
 );
 

一周热门 更多>