Right, that has to do with PLSQL language itself.
The workaround is to grant SODA_APP to the procedure from your admin user (the one that can grant SODA_APP):
grant SODA_APP to procedure mySchemaNameHere.myProcedureNameHere;
You'd substitute "mySchemaNameHere" for the schema where you have your procedure defined.
In your case, since you your procedure(s) in a package, you can grant SODA_APP to the package from your admin user:
grant SODA_APP to package mySchemaNameHere.myPackageNameHere;
Similarly, you'd substitute "mySchemaNameHere" for the schema where you have your package.
Quote from our doc:
If a PL/SQL subprogram that you write invokes subprograms that are in package
DBMS_SODA, and if your subprogram has definer (owner) rights, then a database administrator (DBA) must grant role
SODA_APPto your subprogram. For example, this code grants role
my_soda_proc, which is owned by database schema (user)
GRANT SODA_APP TO PROCEDURE my_db_schema.my_soda_proc;
doesn't seem to work.
grant SODA_APP to pkg_vo_apex_ld rdfuser.pkg_vo_apex_ld;
Error starting at line : 3 in command -
grant SODA_APP to pkg_vo_apex_ld rdfuser.pkg_vo_apex_ld
Error report -
ORA-00933: SQL-opdracht is niet juist beëindigd.
00933. 00000 - "SQL command not properly ended"
this works: grant SODA_APP to package rdfuser.pkg_vo_apex_ld;