记录集和SAP HANA错误

2020-08-23 06:44发布

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

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


嗨,

当我使用sapbobscom.recordset执行此查询时遇到麻烦(在HANA Designer上可以执行该查询)。

怎么了? Recordset支持SEMICOLON吗?

错误消息是 1)。 [SAP AG] [LIBODBCHDB DLL] [HDBODBC]语法错误或访问冲突; 257 sql语法错误:";"附近的语法不正确:第4行

我的测试查询

 创建本地临时表#Table(
     交易代码nvarchar(15),
     交易名称nvarchar(100)
 );


 插入#表(TRANSPCODE,TRANSPNAME)
 选择
     T0。" CardCode",
     T0。" CardName"
 来自" SBO_TEST"。OCRDT0
 其中T0。" GroupCode" = 101;


 从#Table中选择*;
 删除表#Table;
 

种种问候

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

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


嗨,

当我使用sapbobscom.recordset执行此查询时遇到麻烦(在HANA Designer上可以执行该查询)。

怎么了? Recordset支持SEMICOLON吗?

错误消息是 1)。 [SAP AG] [LIBODBCHDB DLL] [HDBODBC]语法错误或访问冲突; 257 sql语法错误:";"附近的语法不正确:第4行

我的测试查询

 创建本地临时表#Table(
     交易代码nvarchar(15),
     交易名称nvarchar(100)
 );


 插入#表(TRANSPCODE,TRANSPNAME)
 选择
     T0。" CardCode",
     T0。" CardName"
 来自" SBO_TEST"。OCRDT0
 其中T0。" GroupCode" = 101;


 从#Table中选择*;
 删除表#Table;
 

种种问候

付费偷看设置
发送
2条回答
空代码
1楼 · 2020-08-23 07:24.采纳回答

嗨,布鲁诺,

最后,我听说他们一次也不支持多个语句。 这意味着您必须在单独的调用中执行"创建","插入","选择"和"放置"。

或者创建一个HANA过程并调用它。

一次执行多个查询不适用于ODBC驱动程序。

对于其他数据库,我们可以通过指定;

在一个查询中拆分多个查询。

使用Hana ODBC驱动程序时,此功能不可用。

使用Hana JDBC驱动程序,您可以利用addBatch()执行多个查询。

不起作用的示例:

将本地临时表#prc创建为(从哑元中选择" 1" AS测试);

SELECT * FROM #prc;

DROP TABLE #prc

解决方法:发送3个不同的查询来执行,而不是发送内部包含多个查询的1个大查询。

性能:如果这是为了提高性能而设计的,请考虑使用带有参数的预编译sql语句。 由于您不必每次都编译语句,因此可以提高速度。 如果这还不够,请使用多个连接进行工作(插入,更新...)

也在这里看看:

将SAP Business One附加组件从SQL Server迁移到SAP HANA

《 HANA和MSSQL的SQL准则》 <-在文章结尾处描述了您的情况。

祝你好运。


最诚挚的问候,

Pedro Magueija


在LinkedIn上查看Pedro Magueija的个人资料