Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - 编程 » 数据库中的 Java » 数据库中 Java 类的特殊功能

 

通过存储过程从 Java 返回的值

您可以将使用 EXTERNAL NAME LANGUAGE JAVA 创建的存储过程用作 Java 方法的包装。本节介绍如何编写 Java 方法以在存储过程中利用 OUT 或 INOUT 参数。

Java 不显式支持 INOUT 或 OUT 参数。相反,您可以使用参数数组。例如,要使用整型 OUT 参数,请创建一个刚好由一个整数组成的数组:

public class Invoice 
{
  public static boolean testOut( int[] param )
  {
    param[0] = 123;
    return true;
  }
}

以下过程使用 testOut 方法:

CREATE PROCEDURE testOut( OUT p INTEGER )
EXTERNAL NAME 'Invoice.testOut([I)Z'
LANGUAGE JAVA;

字符串 ([I)Z 是一个 Java 方法签名,用于指明该方法有一个单个参数(是一个由整数构成的数组)并会返回一个布尔值。定义该方法,以使要用作 OUT 或 INOUT 参数的方法参数成为一个对应于 OUT 或 INOUT 参数的 SQL 数据类型的 Java 数据类型的数组。

要对此进行测试,请使用未初始化的变量调用该存储过程。

CREATE VARIABLE zap INTEGER;
CALL testOut( zap );
SELECT zap;

结果集是 123

有关语法(包括方法签名)的详细信息,请参见CREATE PROCEDURE 语句 [外部调用]