2017-12-18 759 views
0

在SQL控制台为什么我不能在执行SAP HANA此查询SAP HANA SQL:准备语句

PREPARE stmt1 
FROM select * from (select '12' as a from dummy) t1 
where t1.a = ?; 

错误:

Could not execute 'PREPARE stmt1 FROM select * from (select '12' as a from dummy) t1 where t1.a = ?' in 3 ms 339 µs . SAP DBTech JDBC: [257]: sql syntax error: incorrect syntax near "PREPARE": line 1 col 1 (at pos 1)

我需要准备使用存储过程中的语句。

回答

1

PREPARE简直是无效的SQLScript语法。 不确定为什么你认为你必须在存储过程中使用它。 在SAP HANA存储过程中,您可以简单地编写包含任何变量的SQL语句。 例如

select * from (select '12' as a from dummy) t1 
where t1.a = :variable_name; 

在技术上是有效的 - 即使结果只分配给默认结果集。通常,您将结果分配到这样的表变量:

x = select * from (select '12' as a from dummy) t1 
where t1.a = :variable_name; 

这一切当然是在SAP HANA documentation for SQLScript解释。