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

GRANT statements in EXEC SQL/ENDEXEC

Former Member
0 Likes
588

Hello, All!!

Can someone please advise if this is possible in ABAP? Sample code is:

exec sql.

GRANT SELECT ON :tabname TO 'DB_ROLE'

endexec.

I am getting a ORA-00903 error, the trace file is showing "GRANT SELECT ON :A0 TO 'OWB_BI_READONLY';"

Please advise ASAP; points guaranteed for helpful answers.

Best Regards,

Reenal

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
500

Hi Reenal,

Try using the below code:

data: zsql type ref to CL_SQL_STATEMENT.

CREATE OBJECT ZSQL.

tabname = <i>tablename</i>.

data: lv_state(200),

lv_strstate type string.

concatenate

'GRANT SELECT ON'

tabname

'to OWB_BI_READONLY'

into lv_state separated by space.

lv_strstate = lv_state.

translate lv_strstate to upper case.

TRY.

CALL METHOD ZSQL->EXECUTE_DDL

EXPORTING

STATEMENT = lv_strstate.

catch CX_SQL_EXCEPTION INTO exc_ref.

error_text = exc_ref->get_text( ).

MESSAGE error_text TYPE 'I'.

ENDTRY.

3 REPLIES 3
Read only

Former Member
0 Likes
500

Hi,

The description for ORA-00903 says "invalid table name".

ORA-00903: invalid table name

Make sure you have the correct table name..

Thanks,

Naren

Read only

Former Member
0 Likes
501

Hi Reenal,

Try using the below code:

data: zsql type ref to CL_SQL_STATEMENT.

CREATE OBJECT ZSQL.

tabname = <i>tablename</i>.

data: lv_state(200),

lv_strstate type string.

concatenate

'GRANT SELECT ON'

tabname

'to OWB_BI_READONLY'

into lv_state separated by space.

lv_strstate = lv_state.

translate lv_strstate to upper case.

TRY.

CALL METHOD ZSQL->EXECUTE_DDL

EXPORTING

STATEMENT = lv_strstate.

catch CX_SQL_EXCEPTION INTO exc_ref.

error_text = exc_ref->get_text( ).

MESSAGE error_text TYPE 'I'.

ENDTRY.

Read only

0 Likes
500

Thanx, Wayne.

Perfect solution to my problem.

--Reenal