这是存储过程,我想在jsp中得到@BH的值
create procedure proc_getbh @BM varchar(20)
as
declare @BH char(10)
declare @TODAY char(6)
begin
select @TODAY=right(convert(char(8),getdate(),112),6)
select @BH=BH from SEED where BM=@BM
if @BH is null or left(@BH,6)<>@TODAY
begin
select @BH=@TODAY+'0000'
end
select @BH=left(@BH,6)+right('0000' + ltrim(convert(char(4),convert(int,right(@BH,4)))+1),4)
update seed set BH=@BH where BM=@BM
select @BH as BH
endGO

解决方案 »

  1.   

    java.sql.CallableStatement sqlstmt=con.prepareCall("{?=call proc_getbh(?)}");
        sqlstmt.setString(1,"hello");
        sqlstmt.registerOutParameter(1, java.sql.Types.VARCHAR);//注册输出参数
        String str= sqlstmt.getString("@BH");这样怎么得不到?
      

  2.   

    OutParameter在前,是1 “sqlstmt.registerOutParameter(1, java.sql.Types.VARCHAR);”
    inParameter在后,序号是2 “sqlstmt.setString(1,"hello");”获取参数前要执行“sqlstmt.execute();”
      

  3.   

    晕,上面的输入参数序号没有改,如下java.sql.CallableStatement sqlstmt=con.prepareCall("{?=call proc_getbh(?)}");
    sqlstmt.registerOutParameter(1, java.sql.Types.VARCHAR);//注册输出参数
    sqlstmt.setString(2,"hello");
    sqlstmt.execute();
    String str= sqlstmt.getString(1);
      

  4.   

    我按照楼上的改了,报出如下错误:
    java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]The requested data is not available.
    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
    at com.microsoft.jdbc.base.BaseData.convert(Unknown Source)
    at com.microsoft.jdbc.base.BaseData.getData(Unknown Source)
    at com.microsoft.jdbc.base.BaseCallableStatement.getString(Unknown Source)
    at Hello.main(Hello.java:27)