gpt4 book ai didi

java - 概念 : Build Java Program and load it into Oracle DB - Wrapper function calls java function with return

转载 作者:行者123 更新时间:2023-12-01 19:53:23 26 4
gpt4 key购买 nike

假设我有以下 java 函数:

public class Example {

public String getHelloWorld(String hello) {
return hello + "world"
}

}

我通过 getHelloWorld("hello") 调用该方法,函数得到“hello world”作为返回。通过启动类(仅限主方法),我实例化一个新的“Example”,并调用非静态函数 getHelloWorld。这里一切都很好。

现在我想将此类放入 Oracle 数据库中:使用以下命令,它可以按预期工作; PLSQL:

create or replace java source named "com.test.Example" as
public class Example { [...]

现在我得到了数据库的响应,表明java源已成功创建。

现在我尝试纠正包装函数以便稍后从 pl/sql 调用我的函数:函数 get_hello_world(i_string VARCHAR2)
返回 VARCHAR2 AS
语言 java 名称 'com.test.Example.getHelloWorld(
java.lang.String
) 返回 java.lang.String';

现在我有一些问题:所有这些都可以一起工作吗?我可以像示例中那样调用“getHelloWorld”等非静态方法吗?

如果只能用静态方法,还需要写main方法吗?如果是,我如何访问 PL/SQL 中的返回值?从我的角度来看,main 方法没有 return..

有人可以给我任何线索来找到解决方案吗?

最佳答案

是的,您需要调用静态方法,但在静态方法中您可以创建类的实例并调用非静态方法:

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';

关于java - 概念 : Build Java Program and load it into Oracle DB - Wrapper function calls java function with return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50504506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com