Application Development and Automation 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: 
Read only

Raise Exception when Executing Native SQL

Former Member
0 Likes
543

Hi ALL,

when i am executing native sql, it raises following exception:

CX_SY_NATIVE_SQL_ERROR

code as shown below:

REPORT ZABC2.

data:begin of ty_final occurs 0,

vkorg type vbrk-vkorg,

vtweg type vbrk-vtweg,

spart type vbrp-spart,

werks type vbrp-werks,

fkart type vbrk-fkart,

vbeln_invoice type vbrk-vbeln,

matnr type vbrp-matnr,

arktx type vbrp-arktx,

fkimg type vbrp-fkimg,

ntgew type vbrp-ntgew,

mwsbp type vbrp-mwsbp,

posnr type vbrp-posnr,

vbeln type likp-vbeln,

bldat type likp-bldat,

erdat type likp-erdat,

traid type likp-traid,

ernam type likp-ernam,

posnr_do type lips-posnr,

vbeln_so type vbak-vbeln,

audat_so type vbak-audat,

erdat_so type vbak-erdat,

ernam_so type vbak-ernam,

posnr_so type vbap-posnr,

vbeln_contract type vbak-vbeln,

audat_contract type vbak-audat,

erdat_contract type vbak-erdat,

ernam_contract type vbak-ernam,

vbtyp_contract type vbak-vbtyp,

posnr_contract type vbap-posnr,

end of ty_final.

TRY.

break-point.

EXEC SQL .

select

i1.inv_vkorg,

i1.inv_vtweg,

i1.inv_spart,

i1.inv_werks,

i1.inv_fkart,

i1.inv_vbeln,

i1.inv_matnr,

i1.inv_arktx,

i1.inv_fkimg,

i1.inv_ntgew,

i1.inv_mwsbp

i1.inv_posnr,

d.do_vbeln,

d.do_bldat,

d.do_erdat,

d.do_traid,

d.do_ernam,

d.do_posnr,

s.so_vbeln,

s.so_audat,

s.so_erdat,

s.so_ernam,

s.so_posnr,

c.co_vbeln,

c.co_audat,

c.co_erdat,

c.co_ernam,

c.co_vbtyp,

c.co_posnr

into :ty_final

from (SELECT

VBAK.VBELN co_vbeln,

VBAK.AUDAT co_audat,

VBAK.ERDAT co_erdat,

VBAK.ERNAM co_ernam,

VBAK.VBTYP co_vbtyp,

VBAP.POSNR CO_POSNR

FROM VBAK , VBAP

WHERE VBAK.VBELN=vbap.vbeln

and vbak.vbtyp='G') c,

(SELECT

vbak.vbeln so_vbeln,

vbak.audat so_audat,

vbak.erdat so_erdat,

vbak.ernam so_ernam,

vbap.posnr so_posnr

FROM VBAK ,VBAP

WHERE vbak.VBELN=vbap.vbeln

and vbak.vbtyp='C') s,

(SELECT

likp.vbeln do_vbeln,

likp.bldat do_bldat,

likp.erdat do_erdat,

likp.traid do_traid,

likp.ernam do_ernam,

lips.posnr do_posnr

FROM LIKP , LIPS

WHERE likp.VBELN=lips.vbeln

and likp.vbtyp='J'.

) d,

(SELECT

vbrk.vkorg inv_vkorg,

vbrk.vtweg inv_vtweg,

vbrp.spart inv_spart,

vbrp.werks inv_werks,

vbrk.fkart inv_fkart,

vbrk.vbeln inv_vbeln,

vbrp.matnr inv_matnr,

vbrp.arktx inv_arktx,

vbrp.fkimg inv_fkimg,

vbrp.ntgew inv_ntgew,

vbrp.mwsbp inv_mwsbp,

vbrp.posnr inv_posnr

FROM VBRK , VBRP

WHERE vbrk.VBELN=vbrp.vbeln

AND vbrk.VBTYP='M'

AND vbrk.FKART NOT IN ('S1','S2','S3')

AND vbrk.FKSTO<>'X') i1,

(SELECT

vbelv,

POSNV,

vbtyp_v,

vbeln,

POSNN,

vbtyp_n

FROM VBFA

where VBTYP_V='G'

AND VBTYP_N='C'

) f1,

(SELECT

vbelv,

POSNV,

vbtyp_v,

vbeln,

POSNN,

vbtyp_n

FROM VBFA

where VBTYP_V='C'

AND VBTYP_N='J'

) f2,

(SELECT

vbelv,

POSNV,

vbtyp_v,

vbeln,

POSNN,

vbtyp_n

FROM VBFA

where VBTYP_V='J'

AND VBTYP_N='M'

) f3

where c.vbeln=f1.vbelv(+)

and f1.vbeln=f2.vbelv(+)

and s.vbeln=f2.vbelv(+)

and f2.vbeln=f3.vbelv(+)

and d.vbeln=f3.vbelv(+)

and i1.vbeln=f3.vbeln(+)

ENDEXEC.

**and c.vbeln=f3.vbelv(+)

**and i1.vbeln=d.vbeln(+)

**

*if sy-subrc <> 0.

CATCH CX_SY_NATIVE_SQL_ERROR.

ENDTRY.

*ENDIF.

break-point.

2 REPLIES 2
Read only

Former Member
0 Likes
467

Hi,

Try using this ..

data ref1 type ref to CX_SY_NATIVE_SQL_EROR.

try.

exec sql.

...

endexec.

catch CX_SY_NATIVE_SQL_EROR.

write 'Error ', ref1->SQL_ERROR.

RAISE EXCEPTION myref.

endtry.

Edited by: Vasavi Kotha on Jan 6, 2009 11:26 AM

Read only

christine_evans
Active Contributor
0 Likes
467

What does the dump say? Oh, and if you enclose your code in code tags it will make it easier to read.