后台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);
- }
- }