Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle come importare classi java mancanti quando si chiama java da plsql

Puoi provare CREATE JAVA CLASS :

CREATE OR REPLACE DIRECTORY xml_template_dir
  AS '/path/to/oracle/apps/xdo/oa/schema/server/';
/

CREATE JAVA CLASS USING BFILE (xml_template_dir, 'TemplateHelper.class' )
/

Tuttavia, mentre questo potrebbe caricare la classe, quasi sicuramente avrà altre dipendenze e fallirà quando proverai a utilizzare quella classe e dovrai quindi caricare quelle dipendenze e quindi le dipendenze delle dipendenze e così via...

Faresti meglio a trovare un JAR contenente l'intero pacchetto (o crea tu stesso il pacchetto dalla tua struttura di directory esistente) e usa loadjava :

loadjava -user APPS/[email protected] -resolve XML_Publisher.jar

(Se devi sovrascrivere classi esistenti che non sono state caricate, potresti aver bisogno di -force opzione pure.)

Puoi quindi testare per vedere se qualcosa non è stato caricato utilizzando:

SELECT object_name
FROM   user_objects
WHERE  object_type = 'JAVA CLASS'
AND    status != 'VALID';

Tieni inoltre presente che solo perché la classe è stata caricata correttamente non significa che non genererà eccezioni di runtime quando invocherai la classe.