How can I call an EJB via an oracle stored procedure?
There are a couple of ways you could potentially do this. You will need to select the one[s] which suit your environment best.
The first is the time tested legacy method of calling any external routine from within an Oracle database, whcih is to have an external process running in the OS which is connected to the database. You then communicate with this process via DBMS_PIPEs and the external process becomes your agent by listening for commands, executing the call to your EJB, confirming the call and returning any applicable results.
The third way would be to use an external library call. I think you can still only do these in C, but you will probably be able to find a way to invoke an EJB from C.