Sì, devi chiamare un metodo statico, ma all'interno del metodo statico puoi creare un'istanza della classe e chiamare metodi non statici:
create or replace java source named "com.test.Example" AS
public class Example {
public String getHelloWorld(
final String hello
) {
return hello + "world"
}
public static String getStaticHelloWorld(
final String hello;
){
final Example e = new Example();
return e.getHelloWorld( hello );
}
}
/
CREATE FUNCTION get_hello_world(i_string VARCHAR2) RETURN VARCHAR2 AS
LANGUAGE java name 'com.test.Example.getStaticHelloWorld(
java.lang.String
) return java.lang.String';