SQLServer递归存储过程和java调用

递归存储过程(根据部门id获取公司名称)

create  proc getCompanyName
	@deptId int,
	@companyName varchar(50) output
as 
	declare @superDeptId int;
	select @superDeptId = SUP_BUDGET_DEP,@companyName = budget_dep_name  from 	uf_BM_budget_dep where id =@deptId;
if (@superDeptId = 0) 
begin 
	print @companyName;
end else begin
		exec getCompanyName @superDeptId,@companyName output;
end
begin
	insert into student(id,name) values(@deptId,@companyName);
end

  

java调用

 public static void main(String[] args)  {
        Connection conn = null;
        try {
            conn = new GxJdbc().getCon();
            CallableStatement call = conn.prepareCall("{call getCompanyName(?,?)}");
            call.setInt(1,185);
            call.registerOutParameter(2, Types.VARCHAR);
            call.execute();
            String name = call.getString(2);
            System.out.println("name: "+name);
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

 

posted on 2021-02-24 17:07  周公  阅读(210)  评论(0编辑  收藏  举报

导航