简体   繁体   English

Java存储过程:OUT参数

[英]Java Stored Procedure: OUT params

I have to make some java procedure in Oracle with 'OUT' parameters. 我必须使用“ OUT”参数在Oracle中创建一些Java过程。 Procedure must be like this: 程序必须是这样的:

create or replace 
procedure SomeProcedure(input1 IN VARCHAR2, result1 OUT VARCHAR2, result2 OUT VARCHAR2)
...
...

How do i do that? 我怎么做? How i must specify Java class and method? 我必须如何指定Java类和方法? How do I create stored procedure from this class and method? 如何从此类和方法创建存储过程? Any simple examples? 有简单的例子吗?

UPD : just solve that: UPD :只需解决以下问题:

create or replace and compile java source named "TestOutParams" as
public class TestOutParams{
    public static void someMethod(String[] value){
        value[0] = "Hello";
    }
};
/

create or replace procedure TestOutParams(value OUT VARCHAR2) as
language java
NAME 'TestOutParams.someMethod(java.lang.String[])';
/

SQL>var value VARCHAR2(40);
SQL>exec TestOutParams(:value);
PL/SQL procedure successfully completed.
SQL>PRINT value;
VALUE
---------

Hello

I dont know, why, but its working! 我不知道,为什么,但是它起作用了!

Well, it's something like this; 好吧,就是这样。

CallableStatement stmt = null;
stmt = conn.prepareCall("begin SomeProcedure(?,?,?); end;");
stmt.setString(1, new String("value1"));             // Bind 1st input parameter
stmt.setString(2, new String("value2"));          // Bind 2nd input parameter
stmt.registerOutParameter(3, Types.VARCHAR);     // 3rd parameter is OUT
stmt.execute();

String retcod = new String(stmt.getInt(3));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM