Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle, wie fehlende Java-Klassen importiert werden, wenn Java von plsql aufgerufen wird

Sie können CREATE JAVA CLASS ausprobieren :

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' )
/

Obwohl dies die Klasse laden könnte, wird es jedoch mit ziemlicher Sicherheit andere Abhängigkeiten haben und fehlschlagen, wenn Sie versuchen, diese Klasse zu verwenden, und Sie müssen dann diese Abhängigkeiten laden und dann die Abhängigkeiten, Abhängigkeiten und so weiter ...

Sie sollten besser ein JAR finden die das gesamte Paket enthält (oder erstellen Sie das Paket selbst aus Ihrer vorhandenen Verzeichnisstruktur) und verwenden Sie loadjava :

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

(Wenn Sie vorhandene Klassen überschreiben müssen, die nicht geladen werden konnten, benötigen Sie möglicherweise das -force Option.)

Sie können dann testen, ob etwas nicht geladen werden konnte, indem Sie Folgendes verwenden:

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

Beachten Sie auch, nur weil die Klasse erfolgreich geladen wurde, bedeutet dies nicht, dass sie keine Laufzeitausnahmen generiert, wenn Sie die Klasse aufrufen.