---------------不帶輸出參數的----------------------------------
1
create procedure getsum
2
@n int =0<--此處為參數-->
3
as
4
declare @sum int<--定義變量-->
5
declare @i int
6
set @sum=0
7
set @i=0
8
while @i<=@n begin
9
set @sum=@sum+@i
10
set @i=@i+1
11
end
12
print 'the sum is '+ltrim(rtrim(str(@sum)))
--------------在SQL中執行:--------------------

2

3

4

5

6

7

8

9

10

11

12

1
exec getsum 100

------------在JAVA中調用:---------------------
JAVA可以調用 但是在JAVA程序卻不能去顯示該存儲過程的結果 因為上面的存儲過程的參數類型int 傳遞方式是in(按值)方式
1
import java.sql.*;
2
3
public class ProcedureTest {
4
public static void main(String args[]) throws Exception {
5
//加載驅動
6
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
7
//獲得連接
8
Connection conn = DriverManager.getConnection("jdbc:odbc:mydata", "sa",
9
"");
10
//創建存儲過程的對象
11
CallableStatement c = conn.prepareCall("{call getsum(?)}");
12
//給存儲過程的參數設置值
13
c.setInt(1, 100); //將第一個參數的值設置成100
14
//執行存儲過程
15
c.execute();
16
conn.close();
17
}
18
}

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18
