使用函数调用 Java SOURCE

Call Java SOURCE using function

我需要使用 SQL、PL/SQL 或 Java 找出 Windows 用户名。到目前为止,我已经找到一些 java 代码可以 return 一个 Windows 用户名。我将 Java 代码放入我的模式数据库中,但无法创建将调用此 Java 代码的函数。

那么,我的问题是:

如何编写一个 SQL 函数来调用下面的 Java 代码?

CREATE OR REPLACE AND RESOLVE JAVA SOURCE NAMED TED."`GetWindowUsername`" as import java.`lang`.*;
import java.`util`.*;
import java.`io`.*;

public class `GetWindowUsername` {
    public static final void main( String `args`[] ) {
        String `userName` = System.get Property("user.name");
        System.out.`println`("Window's Username: "+user Name);
    }
}

我在互联网上找到这段代码作为获取 Windows 用户名的示例。

我正在使用 Oracle Toad 作为 SQL 编码的工具。

How can I write an SQL function that will call this JAVA code below?

您需要一个 class 包含一个静态方法,它将 return 一个值 ():

CREATE AND COMPILE JAVA SOURCE NAMED GetWindowUsername AS
public class GetWindowUsername {
  public static String getUsername()
  {
    return java.lang.System.getProperty("user.name");
  }
}

然后你需要创建一个PL/SQL函数来调用Javaclass的函数:

CREATE FUNCTION getUsername( in_value IN VARCHAR2 ) RETURN VARCHAR2
AS LANGUAGE JAVA NAME 'GetWindowUsername.getUsername() return java.lang.String';
/