2011-04-04 176 views

回答

0

在參數中,接收來自調用者的數據。 out參數將數據推送給它們的調用者(通過引用調用)。 inout參數都可以。我不確定如何在沒有更清楚的知道你想知道的內容的情況下如何使它更加詳細。

+0

我想知道他們是如何通過價值管理,由參ECC。 – xdevel2000 2011-04-04 12:07:41

+0

然後告訴我們你正在使用哪個數據庫。 – bmargulies 2011-04-04 12:09:06

+0

是的,我正在使用MySQL 5.5 – xdevel2000 2011-04-04 12:11:11

3

IN參數按值傳遞給SP。 OUT參數通過值從SP返回。 INOUT參數按引用傳遞,因爲它們包含一個值,另一個值出現。

+0

最後一部分在SQL Server中不正確。 – 2011-04-04 11:50:58

+0

無論如何,這就是它在LINQ2SQL中完成的方式。也許你是對的。我認爲這是更一般的。 – 2011-04-04 11:52:57

+0

只要閱讀你的鏈接,它會反駁TSQL。由於提問者沒有指定一種語言,我認爲我的答案更一般。 – 2011-04-04 11:55:06

5

mysql> CREATE PROCEDURE in_2(IN value INT)BEGIN SELECT value; SET value =100;SE 
    LECT value;END// 
    Query OK, 0 rows affected (0.00 sec) 

    mysql> SET @s =9// 
    Query OK, 0 rows affected (0.00 sec) 

    mysql> CALL in_2(@s)// 
    +-------+ 
    | value | 
    +-------+ 
    |  9 | 
    +-------+ 
    1 row in set (0.00 sec) 

    +-------+ 
    | value | 
    +-------+ 
    | 100 | 
    +-------+ 
    1 row in set (0.00 sec) 

mysql> SELECT @s; 
    -> // 
+------+ 
| @s | 
+------+ 
| 9 | 
+------+ 
1 row in set (0.00 sec) 

2.OUT

mysql> CREATE PROCEDURE in_3(OUT value INT) 
    -> SET value=100// 
Query OK, 0 rows affected (0.00 sec) 

mysql> SET @x=56// 
Query OK, 0 rows affected (0.00 sec) 

mysql> CALL in_3(@x)// 
Query OK, 0 rows affected (0.00 sec) 

mysql> SELECT @x// 
+------+ 
| @x | 
+------+ 
| 100 | 
+------+ 
1 row in set (0.00 sec) 
+0

INOUT是什麼? – 2016-06-25 16:46:27

+0

https://stackoverflow.com/questions/11267868/out-or-inout-parameter-not-working – zloctb 2017-08-31 11:42:35