2017-12-18 10 views
0

Warum kann ich diese Abfrage in SAP HANA in SQL-KonsoleSAP HANA SQL: Bereiten Anweisung

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

Fehler nicht ausführen:

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)

ich verwenden, müssen vorbereiten Anweisung in gespeicherten Prozedur.

Antwort

1

PREPARE ist einfach keine gültige SQLScript-Syntax. Nicht sicher, warum Sie denken, dass Sie dies in einer gespeicherten Prozedur verwenden müssen. In gespeicherten SAP-HANA-Prozeduren können Sie einfach Ihre SQL-Anweisungen einschließlich aller Variablen schreiben. Zum Beispiel

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

ist technisch gültig - obwohl das Ergebnis nur der Standardergebnismenge zugewiesen ist. Normalerweise würden Sie das Ergebnis in eine Tabellenvariable wie folgt vergeben:

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

All dies ist natürlich in der SAP HANA documentation for SQLScript erläutert.