Vor HANA:
SELECT SINGLE * FROM adr6
INTO ls_adr6
WHERE addrnumber = lv_addrnumber
AND persnumber = lv_persnumber.
Es fehlt hier der Primary Key, der in Nicht HANA DB normalerweise herangezogen wird, auch wenn der Key nicht vollständig ist.
Bei Positionszeilen könnte dies egal sein, wenn die Positionsinfo nicht wesentlich ist, damit ist und wäre der Code eig. auch ausreichend.
Auch die ORDER BY Clause ist und wäre nicht notwendig, wenn dir Reihenfolge des Output egal ist.
Trotzdem erfordert HANA hier eine Korrektur, statt SELECT SINGLE muss SELECT UP TO 1 ROWS und explizit ORDER BY verwendet werden.
Mit HANA:
SELECT * UP TO 1 ROWS FROM adr6
INTO ls_adr6
WHERE addrnumber = lv_addrnumber
AND persnumber = lv_persnumber
ORDER BY PRIMARY KEY . „=> AUTOMATIC ADJUSTMENT
Zusammengefaßt gilt:
- There were only a handfull of issues related to SELECT and missing ORDER BY, direct reading of Pool or Clusters, or native SQL statements.
- However, we found lots of real issues related to the following statements:
- SELECT SINGLE without fully qualified key
- SELECT. EXIT. ENDSELECT statements
- SELECT CHECK ENDSELECT statements
- SELECT UP TO 1 ROWS statements
- SELECT INTO TABLE statements where sequence of resulting table is important for subsequent processing using LOOP, even without AT NEW/ AT FIRST events.