SAP ABAP - Ringkasan SQL Asli

Istilah 'SQL Asli' mengacu pada semua pernyataan yang dapat ditransfer secara statis ke antarmuka SQL Asli dari antarmuka database. Pernyataan SQL asli tidak termasuk dalam cakupan bahasa ABAP dan tidak mengikuti sintaks ABAP. ABAP hanya berisi pernyataan untuk mengisolasi bagian program di mana pernyataan SQL Asli dapat dicantumkan.

Dalam SQL native, sebagian besar pernyataan SQL khusus database dapat digunakan. Ini ditransfer tidak berubah dari antarmuka SQL asli ke sistem database dan dijalankan. Cakupan bahasa SQL lengkap dari database yang relevan dapat digunakan dan tabel database yang dialamatkan tidak harus dideklarasikan di Kamus ABAP. Ada juga sekumpulan kecil pernyataan SQL Native spesifik SAP yang ditangani dengan cara tertentu oleh antarmuka SQL asli.

Untuk menggunakan pernyataan SQL Native, Anda harus mengawalinya dengan pernyataan EXEC SQL dan diakhiri dengan pernyataan ENDEXEC.

Berikut ini adalah sintaksnya -

EXEC SQL PERFORMING <form>.  
   <Native SQL statement> 
ENDEXEC.

Pernyataan ini menentukan area dalam program ABAP tempat satu atau lebih pernyataan SQL Asli dapat dicantumkan. Pernyataan yang dimasukkan diteruskan ke antarmuka SQL Asli dan kemudian diproses sebagai berikut -

  • Semua pernyataan SQL yang valid untuk antarmuka program dari sistem database yang dialamatkan dapat dicantumkan di antara EXEC dan ENDEXEC, khususnya pernyataan DDL (bahasa definisi data).

  • Pernyataan SQL ini diteruskan dari antarmuka SQL Asli ke sistem database sebagian besar tidak berubah. Aturan sintaks ditentukan oleh sistem database, terutama aturan sensitivitas huruf untuk objek database.

  • Jika sintaks memungkinkan pemisah antara pernyataan individual, Anda dapat menyertakan banyak pernyataan SQL Native antara EXEC dan ENDEXEC.

  • Elemen bahasa SQL Native spesifik SAP dapat ditentukan antara EXEC dan ENDEXEC. Pernyataan ini tidak diteruskan langsung dari antarmuka SQL Asli ke database, tetapi diubah dengan tepat.

Contoh

SPFLI adalah Tabel SAP standar yang digunakan untuk menyimpan informasi jadwal Penerbangan. Ini tersedia dalam sistem R / 3 SAP tergantung pada versi dan tingkat rilis. Anda dapat melihat informasi ini saat Anda memasukkan nama Tabel SPFLI ke dalam transaksi SAP yang relevan seperti SE11 atau SE80. Anda juga dapat melihat data yang terdapat dalam tabel database ini dengan menggunakan dua transaksi ini.

REPORT ZDEMONATIVE_SQL. 
DATA: BEGIN OF wa,  
      connid  TYPE SPFLI-connid,
      cityfrom TYPE SPFLI-cityfrom,
      cityto  TYPE SPFLI-cityto,  
      END OF wa. 
	
DATA c1 TYPE SPFLI-carrid VALUE 'LH'. 
EXEC SQL PERFORMING loop_output.
   SELECT connid, cityfrom, cityto  
   INTO :wa  
   FROM SPFLI  
   WHERE carrid = :c1 
ENDEXEC. 

FORM loop_output.  
   WRITE: / wa-connid, wa-cityfrom, wa-cityto. 
ENDFORM.

Kode di atas menghasilkan keluaran sebagai berikut -

0400  FRANKFURT  NEW YORK 
2402  FRANKFURT  BERLIN 
0402  FRANKFURT  NEW YORK