gpt4 book ai didi

Oracle sql Developer 中的 Java 字符串参数

转载 作者:行者123 更新时间:2023-12-02 12:30:03 24 4
gpt4 key购买 nike

我必须在 Oracle SQL Developer 中使用一些 java 函数。但是我在使用 java String 参数时遇到了一些麻烦。我知道我的代码对这个字符串没有任何作用。一定会的。

CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "StringTest" AS
public class StringTest
{
public static int test(String a)
{
return 1;
}
}
/

返回结果:

Java Source StringTest created

然后:

CREATE OR REPLACE FUNCTION F_STRING(input1 in char) return number
as LANGUAGE JAVA NAME 'StringTest.test(String) return int';

Function F_STRING compiled

现在当我尝试执行我的函数时:

SELECT F_STRING("some_text") FROM MyTable;

ORA-00904: "some_text": invalid identifier

  1. 00000 - "%s: invalid identifier"

当我尝试使用单引号而不是 " 时,我得到:

ORA-29531: no method test in class StringTest 29531. 00000 - "no method %s in class %s" *Cause: An attempt was made to execute a non-existent method in a Java class. *Action: Adjust the call or create the specified method.

当我使用 varchar2 而不是 char 时,也会发生同样的情况。我确信我错过了一些非常简单的东西,但在几个小时内找不到解决方案,这已经让我发疯了。

最佳答案

当你在oracle中发布java方法时,你必须使用完整的类名。 (规范名称)。

int - 没问题,字符串 - 不行。

改变这个

CREATE OR REPLACE FUNCTION F_STRING(input1 in char) return number
as LANGUAGE JAVA NAME 'StringTest.test(String) return int';

对此。

CREATE OR REPLACE FUNCTION F_STRING(java.lang.String in char) return number
as LANGUAGE JAVA NAME 'StringTest.test(java.lang.String) return int';

关于Oracle sql Developer 中的 Java 字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45321902/

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