From Oracle's SQL*Plus prompt the following is entered to run a procedure:
SQL> EXECUTE MYPROCEDURE('my data');
PL/SQL procedure successfully completed.
The procedure simply updates a table with the new data, and it runs without error.
When the COBOL program passes the same statement to the SQL.ACU program an error occurs about being invalid. This is the relevant portion of the runtime trace file:
Try loading 'SQL.ACU'...
ORACLE EXECUTE :
execute MYPROCEDURE('my data');
ERROR CODE = 
ORA-00900: invalid SQL statement
To execute an Oracle Procedure, the SQL command passed to SQL.ACU must use the BEGIN… END; syntax rather than EXECUTE:
BEGIN MYPROCEDURE('my data'); END;
Note that only procedures that do not return any data may be executed by calling SQL.ACU.