java调用带输出参数的sybase存储过程

1 后台sp伪代码(T-sql):

if exists (select * from sysobjects where name = 'someProcedoreName' and type = 'P')      
   drop proc someProcedoreName      
go      
     
create proc dbo.someProcedoreName      
@param1 int,      
@param2 varchar(7),       
@param_out int output      
AS      
declare      
... some varivles...      
... some statements...      
......      
select @param_out = 0      
......     
  



2 在sql advantage客户端测试sp:

declare @rr int
exec someProcedoreName 920, '04/2009', @rr output

如果是一个没有带输出参数的sp, 用someProcedoreName param1, param2..就可以了,

但是我发现如果带输出参数,则要在前面加exec. 在这里耗了好久。



3 前端java代码:

public class TestSybaseProcedure {      
public static void main(String[] args)throws Exception{      
  Class.forName("com.sybase.jdbc2.jdbc.SybDriver");      
  Connection cnn = DriverManager.getConnection("jdbc:sybase:Tds:db_url:port", "username", "password");       
  int status=-1;      
  CallableStatement cs = cnn.prepareCall("{ call someProcedoreName ?,?,? }");      
  cs.setInt(1, 920);      
  cs.setString(2, "04/2009");      
  cs.registerOutParameter(3, java.sql.Types.INTEGER);      
  cs.execute();      
  status = cs.getInt(3);      
  System.out.println(status);      
}      
}     

你可能感兴趣的:(java,sql,jdbc,Sybase,Go)