带输出参数的存储过程

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

 

  1. if exists (select * from sysobjects where name = 'someProcedoreName' and type = 'P')  
  2.    drop proc someProcedoreName  
  3. go  
  4.   
  5. create proc dbo.someProcedoreName  
  6. @param1 int,  
  7. @param2 varchar(7),   
  8. @param_out int output  
  9. AS  
  10. declare  
  11. ... some varivles...  
  12. ... some statements...  
  13. ......  
  14. select @param_out = 0  
  15. ......  

2 在sql advantage客户端测试sp:

 

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

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

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

3 前端java代码:

 

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

 

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