cancel
Showing results for 
Search instead for 
Did you mean: 

How to input Internal Table as a Parameter for execute Procedure from Oracle Database

nadirelc
Explorer
156

Here is my code look like

exec sql

execute procedure scheme.package.my_procedure (
            IN :lv_a,
            IN :itab_a,
            IN :itab_b,
            INOUT :lv_c,
            OUT :lv_d
            )

endexec.
I got the error 'The DSQL interface was called with invalid parameters.' I assume this error came from the internal table that is not recognized by Oracle database, meanwhile in the Oracle database itab_a and itab_b are PL/SQL Table.

Can anyone please help me, how to execute oracle database procedure that has PL/SQL TAble parameter from SAP ABAP

Accepted Solutions (0)

Answers (2)

Answers (2)

Romanos
Explorer

Hello @nadirelc ,

The causes regarding the internal tables, that i can think are :
1. The internal tables are hashed or sorted or contain secondary keys. The itabs should be standard without secondary keys

2. Incorrect type mapping from ABAP itab to Oracle array. 

3. Incorrect column name mapping from ABAP itab to Oracle array. In abap column names contain only capital letters whereas in oracle can contain lowercase letters.

Romanos
Explorer

Hello @nadirelc ,

Have you tried to specify the secondary connection to Oracle DB before executing the procedure?

DATA(conn) = CONV dbcon-con_name( `...` ).
EXEC SQL.
  CONNECT TO :conn
ENDEXEC.

EXEC SQL.
EXECUTE PROCEDURE...
ENDEXEC.
nadirelc
Explorer
0 Kudos
i already used that in first, the connection to oracle database is works well, only the procedure tabular parameter is the problem