We recently upgraded our DB from 12c (12.1.0.2.0) to 19c(19.0.0.0.0) in EBS 12.1.3 environment on test instance. After upgrade I am unable to deploy custom web services using SOA rest services integration repository. I am getting following error on deployment:
Service Provider Access resulted in exception 'oracle.apps.fnd.isg.client.IREPException' when attempting to perform 'DEPLOY'. Please view Service Provider logs for more details
I reviewed log files but nothing informative found. One thing I noticed that I was able to deploy web services with simple out parameters with VARCHAR2 data type. But when there is an out parameter defined based on table type, I am receiving above mentioned error. I defined table type out parameter as follows which returns data in form of json array.
TYPE XRCL_TMS_PICKED_ORDERS1 IS TABLE OF ROCELL.XRCL_TMS_PICKED_ORDERS1%ROWTYPE INDEX BY BINARY_INTEGER;
It would be better to mention that on application with 12c database, web service can be deployed with no issue.
I resolved this problem by finding cause of collection type compatibility in 12c and 19c versions of databases.
In 12c below declaration of plsql collection type works fine:
TYPE type_name IS TABLE OF Table_Name%ROWTYPE INDEX BY BINARY_INTEGER;
but in 19c above declaration of plsql collection type has following error. I found this error after trying to recompile collection type:
PLS-00355: use of pl/sql table not allowed in this context
In 19c below declaration worked fine (created type as nested table):
CREATE TYPE type_name AS OBJECT
( column_name datatype );
CREATE TYPE type_name_nt AS TABLE OF type_name;