Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Giá trị ngày không điền được khi dùng Native SQL trong SAP để chèn Order

Sửa lỗi: Thiếu dấu hai chấm (:) trước biến host

Trong ABAP Native SQL (EXEC SQL ... ENDEXEC), biến ABAP phải có tiền tố :.

Code sai

EXEC SQL.
  INSERT INTO order VALUES('2', sy-datum)
ENDEXEC.

Code đúng

EXEC SQL.
  INSERT INTO order VALUES('2', :sy-datum)
ENDEXEC.

Khuyến nghị: Dùng OpenSQL thay vì Native SQL

Native SQL chỉ dùng khi cần tính năng đặc thù của database backend. Câu lệnh INSERT đơn giản này nên dùng OpenSQL (ABAP SQL) để độc lập database, dễ bảo trì:

INSERT order FROM @( VALUE #( id = '2' date = sy-datum ) ).

OpenSQL an toàn hơn, tự động xử lý chuyển đổi kiểu dữ liệu, tránh SQL injection.