Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Normal SQL Query othern than Native

munishsb
Participant
0 Kudos

Can we use normal SQL query in ABAP?

if yes what are the various statements we have..

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

There is one option.

You can use statement EXEC SQL followed by ENDEXEC.

Find the example below:

EXEC SQL.

CREATE TABLE AVERI_CLNT (

CLIENT CHAR(3) NOT NULL,

ARG1 CHAR(3) NOT NULL,

ARG2 CHAR(3) NOT NULL,

FUNCTION CHAR(10) NOT NULL,

PRIMARY KEY (CLIENT, ARG1, ARG2)

)

ENDEXEC.

I hope you are OK with this.

Regards,

Venkat

3 REPLIES 3

saranwin
Contributor
0 Kudos

Hi,

Refer the select statement ..

*Code to demonstrate select command

*Code to demonstrate select into internal table command

TYPES: BEGIN OF t_bkpf,

  • include structure bkpf.

bukrs LIKE bkpf-bukrs,

belnr LIKE bkpf-belnr,

gjahr LIKE bkpf-gjahr,

bldat LIKE bkpf-bldat,

monat LIKE bkpf-monat,

budat LIKE bkpf-budat,

xblnr LIKE bkpf-xblnr,

awtyp LIKE bkpf-awtyp,

awkey LIKE bkpf-awkey,

END OF t_bkpf.

DATA: it_bkpf TYPE STANDARD TABLE OF t_bkpf INITIAL SIZE 0,

wa_bkpf TYPE t_bkpf.

TYPES: BEGIN OF t_bseg,

*include structure bseg.

bukrs LIKE bseg-bukrs,

belnr LIKE bseg-belnr,

gjahr LIKE bseg-gjahr,

buzei LIKE bseg-buzei,

mwskz LIKE bseg-mwskz, "Tax code

umsks LIKE bseg-umsks, "Special G/L transaction type

prctr LIKE bseg-prctr, "Profit Centre

hkont LIKE bseg-hkont, "G/L account

xauto LIKE bseg-xauto,

koart LIKE bseg-koart,

dmbtr LIKE bseg-dmbtr,

mwart LIKE bseg-mwart,

hwbas LIKE bseg-hwbas,

aufnr LIKE bseg-aufnr,

projk LIKE bseg-projk,

shkzg LIKE bseg-shkzg,

kokrs LIKE bseg-kokrs,

END OF t_bseg.

DATA: it_bseg TYPE STANDARD TABLE OF t_bseg INITIAL SIZE 0,

wa_bseg TYPE t_bseg.

*Select directly into an internal table

SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart

dmbtr mwart hwbas aufnr projk shkzg kokrs

FROM bseg

INTO TABLE it_bseg.

  • Select directly into an internal table where fields are in a

  • different order or not all fields are specified

SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart

dmbtr mwart hwbas aufnr projk shkzg kokrs

FROM bseg

INTO CORRESPONDING FIELDS OF TABLE it_bseg.

*Select... endselect command

SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart

dmbtr mwart hwbas aufnr projk shkzg kokrs

FROM bseg

INTO wa_bseg.

APPEND wa_bseg TO it_bseg.

ENDSELECT.

*Select FOR ALL ENTRIES command

SELECT bukrs belnr gjahr bldat monat budat xblnr awtyp awkey

UP TO 100 ROWS

FROM bkpf

INTO TABLE it_bkpf.

IF sy-subrc EQ 0.

  • The FOR ALL ENTRIES comand only retrieves data which matches

  • entries within a particular internal table.

SELECT bukrs belnr gjahr buzei mwskz umsks prctr hkont xauto koart

dmbtr mwart hwbas aufnr projk shkzg kokrs

FROM bseg

INTO TABLE it_bseg

FOR ALL ENTRIES IN it_bkpf

WHERE bukrs EQ it_bkpf-bukrs AND

belnr EQ it_bkpf-belnr AND

gjahr EQ it_bkpf-gjahr.

ENDIF.

Regards,

Saran

Former Member
0 Kudos

Hi,

There is one option.

You can use statement EXEC SQL followed by ENDEXEC.

Find the example below:

EXEC SQL.

CREATE TABLE AVERI_CLNT (

CLIENT CHAR(3) NOT NULL,

ARG1 CHAR(3) NOT NULL,

ARG2 CHAR(3) NOT NULL,

FUNCTION CHAR(10) NOT NULL,

PRIMARY KEY (CLIENT, ARG1, ARG2)

)

ENDEXEC.

I hope you are OK with this.

Regards,

Venkat

Former Member
0 Kudos

You can write code between

EXEC SQL.

        • Your Native SQL Quary

SELECT CLIENT, ARG1 INTO :F1, :F2 FROM AVERI_CLNT

WHERE ARG2 = :F3

ENDEXEC.

It will by-pass your code-checking as well as

Database Interface & Buffer,